* exec.c (xfer_memory): Add attrib argument.
[deliverable/binutils-gdb.git] / gdb / symfile.c
index e28158ae0214d64cb8566bbebff76d3913afcb8b..b0ae6e2a6acacba4dd6e8af0b0faafe930649d1a 100644 (file)
@@ -36,6 +36,7 @@
 #include "inferior.h"          /* for write_pc */
 #include "gdb-stabs.h"
 #include "obstack.h"
+#include "completer.h"
 
 #include <assert.h>
 #include <sys/types.h>
@@ -212,8 +213,7 @@ compare_symbols (const PTR s1p, const PTR s2p)
 
   s1 = (struct symbol **) s1p;
   s2 = (struct symbol **) s2p;
-
-  return (STRCMP (SYMBOL_NAME (*s1), SYMBOL_NAME (*s2)));
+  return (strcmp (SYMBOL_SOURCE_NAME (*s1), SYMBOL_SOURCE_NAME (*s2)));
 }
 
 /*
@@ -241,8 +241,14 @@ compare_symbols (const PTR s1p, const PTR s2p)
 static int
 compare_psymbols (const PTR s1p, const PTR s2p)
 {
-  register char *st1 = SYMBOL_NAME (*(struct partial_symbol **) s1p);
-  register char *st2 = SYMBOL_NAME (*(struct partial_symbol **) s2p);
+  register struct partial_symbol **s1, **s2;
+  register char *st1, *st2;
+
+  s1 = (struct partial_symbol **) s1p;
+  s2 = (struct partial_symbol **) s2p;
+  st1 = SYMBOL_SOURCE_NAME (*s1);
+  st2 = SYMBOL_SOURCE_NAME (*s2);
+
 
   if ((st1[0] - st2[0]) || !st1[0])
     {
@@ -254,18 +260,6 @@ compare_psymbols (const PTR s1p, const PTR s2p)
     }
   else
     {
-      /* Note: I replaced the STRCMP line (commented out below)
-       * with a simpler "strcmp()" which compares the 2 strings
-       * from the beginning. (STRCMP is a macro which first compares
-       * the initial characters, then falls back on strcmp).
-       * The reason is that the STRCMP line was tickling a C compiler
-       * bug on HP-UX 10.30, which is avoided with the simpler
-       * code. The performance gain from the more complicated code
-       * is negligible, given that we have already checked the
-       * initial 2 characters above. I reported the compiler bug,
-       * and once it is fixed the original line can be put back. RT
-       */
-      /* return ( STRCMP (st1 + 2, st2 + 2)); */
       return (strcmp (st1, st2));
     }
 }
@@ -485,8 +479,8 @@ free_section_addr_info (struct section_addr_info *sap)
 
   for (idx = 0; idx < MAX_SECTIONS; idx++)
     if (sap->other[idx].name)
-      free (sap->other[idx].name);
-  free (sap);
+      xfree (sap->other[idx].name);
+  xfree (sap);
 }
 
 
@@ -521,7 +515,7 @@ default_symfile_offsets (struct objfile *objfile,
       /* Record all sections in offsets */
       /* The section_offsets in the objfile are here filled in using
          the BFD index. */
-      ANOFFSET (objfile->section_offsets, osp->sectindex) = osp->addr;
+      (objfile->section_offsets)->offsets[osp->sectindex] = osp->addr;
     }
 
   /* Remember the bfd indexes for the .text, .data, .bss and
@@ -757,7 +751,7 @@ syms_from_objfile (struct objfile *objfile, struct section_addr_info *addrs,
   discard_cleanups (old_chain);
 
   /* Call this after reading in a new symbol table to give target
-     dependant code a crack at the new symbols.  For instance, this
+     dependent code a crack at the new symbols.  For instance, this
      could be used to update the values of target-specific symbols GDB
      needs to keep track of (such as _sigtramp, or whatever).  */
 
@@ -1055,10 +1049,10 @@ symfile_bfd_open (char *name)
 #endif
   if (desc < 0)
     {
-      make_cleanup (free, name);
+      make_cleanup (xfree, name);
       perror_with_name (name);
     }
-  free (name);                 /* Free 1st new malloc'd copy */
+  xfree (name);                        /* Free 1st new malloc'd copy */
   name = absolute_name;                /* Keep 2nd malloc'd copy in bfd */
   /* It'll be freed in free_objfile(). */
 
@@ -1066,7 +1060,7 @@ symfile_bfd_open (char *name)
   if (!sym_bfd)
     {
       close (desc);
-      make_cleanup (free, name);
+      make_cleanup (xfree, name);
       error ("\"%s\": can't open to read symbols: %s.", name,
             bfd_errmsg (bfd_get_error ()));
     }
@@ -1078,7 +1072,7 @@ symfile_bfd_open (char *name)
          on error it does not free all the storage associated with the
          bfd).  */
       bfd_close (sym_bfd);     /* This also closes desc */
-      make_cleanup (free, name);
+      make_cleanup (xfree, name);
       error ("\"%s\": can't read symbols: %s.", name,
             bfd_errmsg (bfd_get_error ()));
     }
@@ -1166,7 +1160,7 @@ generic_load (char *args, int from_tty)
   /* Parse the input argument - the user can specify a load offset as
      a second argument. */
   filename = xmalloc (strlen (args) + 1);
-  old_cleanups = make_cleanup (free, filename);
+  old_cleanups = make_cleanup (xfree, filename);
   strcpy (filename, args);
   offptr = strchr (filename, ' ');
   if (offptr != NULL)
@@ -1226,7 +1220,7 @@ generic_load (char *args, int from_tty)
                block_size = size;
 
              buffer = xmalloc (size);
-             old_chain = make_cleanup (free, buffer);
+             old_chain = make_cleanup (xfree, buffer);
 
              /* Is this really necessary?  I guess it gives the user something
                 to look at during a long download.  */
@@ -1263,7 +1257,7 @@ generic_load (char *args, int from_tty)
                          that.  remote.c could implement that method
                          using the ``qCRC'' packet.  */
                      char *check = xmalloc (len);
-                     struct cleanup *verify_cleanups = make_cleanup (free, check);
+                     struct cleanup *verify_cleanups = make_cleanup (xfree, check);
                      if (target_read_memory (lma, check, len) != 0)
                        error ("Download verify read failed at 0x%s",
                               paddr (lma));
@@ -1447,7 +1441,7 @@ add_symbol_file_command (char *args, int from_tty)
        {
          /* The first argument is the file name. */
          filename = tilde_expand (arg);
-         my_cleanups = make_cleanup (free, filename);
+         my_cleanups = make_cleanup (xfree, filename);
        }
       else
        if (argcnt == 1)
@@ -1679,13 +1673,13 @@ reread_symbols (void)
              /* obstack_specify_allocation also initializes the obstack so
                 it is empty.  */
              obstack_specify_allocation (&objfile->psymbol_cache.cache, 0, 0,
-                                         xmalloc, free);
+                                         xmalloc, xfree);
              obstack_specify_allocation (&objfile->psymbol_obstack, 0, 0,
-                                         xmalloc, free);
+                                         xmalloc, xfree);
              obstack_specify_allocation (&objfile->symbol_obstack, 0, 0,
-                                         xmalloc, free);
+                                         xmalloc, xfree);
              obstack_specify_allocation (&objfile->type_obstack, 0, 0,
-                                         xmalloc, free);
+                                         xmalloc, xfree);
              if (build_objfile_section_table (objfile))
                {
                  error ("Can't find the file sections in `%s': %s",
@@ -1742,7 +1736,7 @@ reread_symbols (void)
              reread_one = 1;
 
              /* Call this after reading in a new symbol table to give target
-                dependant code a crack at the new symbols.  For instance, this
+                dependent code a crack at the new symbols.  For instance, this
                 could be used to update the values of target-specific symbols GDB
                 needs to keep track of (such as _sigtramp, or whatever).  */
 
@@ -1835,7 +1829,7 @@ set_ext_lang_command (char *args, int from_tty)
       /*   query ("Really make files of type %s '%s'?", */
       /*          ext_args, language_str (lang));           */
 
-      free (filename_language_table[i].ext);
+      xfree (filename_language_table[i].ext);
       filename_language_table[i].ext = strsave (ext_args);
       filename_language_table[i].lang = lang;
     }
@@ -2138,7 +2132,7 @@ cashier_psymtab (struct partial_symtab *pst)
    it is not called for subsidiary files such as .h files.
 
    Return value is 1 if we blew away the environment, 0 if not.
-   FIXME.  The return valu appears to never be used.
+   FIXME.  The return value appears to never be used.
 
    FIXME.  I think this is not the best way to do this.  We should
    work on being gentler to the environment while still cleaning up
@@ -2948,7 +2942,7 @@ static void
 simple_free_overlay_table (void)
 {
   if (cache_ovly_table)
-    free (cache_ovly_table);
+    xfree (cache_ovly_table);
   cache_novlys = 0;
   cache_ovly_table = NULL;
   cache_ovly_table_base = 0;
@@ -2960,7 +2954,7 @@ static void
 simple_free_overlay_region_table (void)
 {
   if (cache_ovly_region_table)
-    free (cache_ovly_region_table);
+    xfree (cache_ovly_region_table);
   cache_novly_regions = 0;
   cache_ovly_region_table = NULL;
   cache_ovly_region_table_base = 0;
This page took 0.026276 seconds and 4 git commands to generate.