fixed warnings and errors
authorborutr <borutr@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Thu, 5 Feb 2009 21:02:00 +0000 (21:02 +0000)
committerborutr <borutr@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Thu, 5 Feb 2009 21:02:00 +0000 (21:02 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@5355 4a8a32a2-be11-0410-ad9d-d568d2c75423

as/asranlib/asranlib.c
as/link/lkar.c

index ba92f7e17b4842d7bf663be3945df859ea148299..ab13c6785b857739342ffda4c68af151f5d16f4d 100644 (file)
@@ -26,7 +26,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>. */
 
 #ifdef _WIN32
 #include <io.h>
-#define mktemp  _mktemp
+#else
+#include <unistd.h>
 #endif
 
 #define NELEM(x)  (sizeof (x) / sizeof (*x))
index 3334b29dcfe17c857d3d9c88dc63d4e0a2782151..cdc3077bf342db47bff42d507da4a00940023085 100644 (file)
@@ -454,6 +454,8 @@ buildlibraryindex_ar (struct lbname *lbnh, FILE * libfp, pmlibraryfile This, int
         {
           long moduleOffset = ftell (libfp);
 
+          free (obj_name);
+
           /* Opened OK - create a new libraryfile object for it */
           if (This == NULL)
             {
@@ -600,9 +602,10 @@ fndsym_ar (const char *name, struct lbname *lbnh, FILE * libfp, int type)
   struct ar_hdr hdr;
   int ret = 0;
   size_t hdr_size;
+  char *obj_name;
 
   /* walk trough all archive members */
-  while ((hdr_size = ar_get_header (&hdr, libfp, NULL)) != 0)
+  while ((hdr_size = ar_get_header (&hdr, libfp, &obj_name)) != 0)
     {
       char filspc[PATH_MAX];
 
@@ -627,7 +630,7 @@ fndsym_ar (const char *name, struct lbname *lbnh, FILE * libfp, int type)
 
           buf = (char *) new (hdr.ar_size);
 
-          if ((off_t) fread (buf, 1, hdr.ar_size, libfp) != hdr.ar_size)
+          if (fread (buf, 1, hdr.ar_size, libfp) != hdr.ar_size)
             {
               free (buf);
               return 0;
@@ -653,7 +656,7 @@ fndsym_ar (const char *name, struct lbname *lbnh, FILE * libfp, int type)
               if (0 == strcmp (name, sym))
                 {
                   fseek (libfp, offset, SEEK_SET);
-                  if (ar_get_header (&hdr, libfp))
+                  if (ar_get_header (&hdr, libfp, NULL))
                     {
                       sprintf (&filspc[strlen (filspc)], "%s", hdr.ar_name);
 
@@ -715,7 +718,7 @@ fndsym_ar (const char *name, struct lbname *lbnh, FILE * libfp, int type)
 
           buf = (char *) new (hdr.ar_size);
 
-          if ((off_t) fread (buf, 1, hdr.ar_size, libfp) != hdr.ar_size)
+          if (fread (buf, 1, hdr.ar_size, libfp) != hdr.ar_size)
             {
               free (buf);
               return 0;
@@ -741,7 +744,7 @@ fndsym_ar (const char *name, struct lbname *lbnh, FILE * libfp, int type)
               if (0 == strcmp (name, sym))
                 {
                   fseek (libfp, offset, SEEK_SET);
-                  if (ar_get_header (&hdr, libfp))
+                  if (ar_get_header (&hdr, libfp, NULL))
                     {
                       sprintf (&filspc[strlen (filspc)], "%s", hdr.ar_name);
 
@@ -795,12 +798,14 @@ fndsym_ar (const char *name, struct lbname *lbnh, FILE * libfp, int type)
         }
       else if (AR_IS_STRING_TABLE (obj_name))
         {
+          free (obj_name);
+
           if (sym_tab)
             free (sym_tab);
 
           sym_tab = (char *) new (hdr.ar_size);
 
-          if ((off_t) fread (sym_tab, 1, hdr.ar_size, libfp) != hdr.ar_size)
+          if (fread (sym_tab, 1, hdr.ar_size, libfp) != hdr.ar_size)
             {
               free (sym_tab);
               sym_tab = NULL;
@@ -813,6 +818,8 @@ fndsym_ar (const char *name, struct lbname *lbnh, FILE * libfp, int type)
         {
           long moduleOffset = ftell (libfp);
 
+          free (obj_name);
+
           D ("  Module: %s\n", hdr.ar_name);
 
           sprintf (&filspc[strlen (filspc)], "%s", hdr.ar_name);