]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
2003-01-27 David Carlton <carlton@math.stanford.edu>
authorDavid Carlton <carlton@bactrian.org>
Tue, 28 Jan 2003 00:33:13 +0000 (00:33 +0000)
committerDavid Carlton <carlton@bactrian.org>
Tue, 28 Jan 2003 00:33:13 +0000 (00:33 +0000)
* objfiles.h: Add comments about objfile->msymbols being NULL.
* objfiles.c (objfile_relocate): Enclose ALL_OBJFILE_MSYMBOLS in
guard.
* i386-linux-tdep.c (find_minsym_and_objfile): Call ALL_MSYMBOLS
instead of ALL_OBJFILES and ALL_OBJFILE_MSYMBOLS.
* arm-linux-tdep.c (find_minsym_and_objfile): Ditto.

gdb/ChangeLog
gdb/arm-linux-tdep.c
gdb/i386-linux-tdep.c
gdb/objfiles.c
gdb/objfiles.h

index 9735da008f69ab51641da6f1a40b4d84490c235d..682a91c155cfbd059763601b04600d3a7c636cff 100644 (file)
@@ -1,3 +1,12 @@
+2003-01-27  David Carlton  <carlton@math.stanford.edu>
+
+       * objfiles.h: Add comments about objfile->msymbols being NULL.
+       * objfiles.c (objfile_relocate): Enclose ALL_OBJFILE_MSYMBOLS in
+       guard.
+       * i386-linux-tdep.c (find_minsym_and_objfile): Call ALL_MSYMBOLS
+       instead of ALL_OBJFILES and ALL_OBJFILE_MSYMBOLS.
+       * arm-linux-tdep.c (find_minsym_and_objfile): Ditto.
+
 2003-01-24  David Carlton  <carlton@math.stanford.edu>
 
        * valops.c (find_oload_champ): New function.
index 627ed8dda477cb02a1bbcfaa211d59710e9ffa24..a55fea94ad6a50f8bd89bb105ad094b30d376c34 100644 (file)
@@ -355,19 +355,15 @@ static struct minimal_symbol *
 find_minsym_and_objfile (char *name, struct objfile **objfile_p)
 {
   struct objfile *objfile;
+  struct minimal_symbol *msym;
 
-  ALL_OBJFILES (objfile)
+  ALL_MSYMBOLS (objfile, msym)
     {
-      struct minimal_symbol *msym;
-
-      ALL_OBJFILE_MSYMBOLS (objfile, msym)
+      if (SYMBOL_NAME (msym)
+         && strcmp (SYMBOL_NAME (msym), name) == 0)
        {
-         if (SYMBOL_NAME (msym)
-             && strcmp (SYMBOL_NAME (msym), name) == 0)
-           {
-             *objfile_p = objfile;
-             return msym;
-           }
+         *objfile_p = objfile;
+         return msym;
        }
     }
 
index 1ef14fcb90037f7a8ac371b8573bf893a45d5da2..6dca390021c52de33f929bba878613deb1387e32 100644 (file)
@@ -322,19 +322,15 @@ static struct minimal_symbol *
 find_minsym_and_objfile (char *name, struct objfile **objfile_p)
 {
   struct objfile *objfile;
+  struct minimal_symbol *msym;
 
-  ALL_OBJFILES (objfile)
+  ALL_MSYMBOLS (objfile, msym)
     {
-      struct minimal_symbol *msym;
-
-      ALL_OBJFILE_MSYMBOLS (objfile, msym)
+      if (SYMBOL_NAME (msym)
+         && STREQ (SYMBOL_NAME (msym), name))
        {
-         if (SYMBOL_NAME (msym)
-             && STREQ (SYMBOL_NAME (msym), name))
-           {
-             *objfile_p = objfile;
-             return msym;
-           }
+         *objfile_p = objfile;
+         return msym;
        }
     }
 
index c333f4cfd97d7d38865c6d0e52ad2daf260b48c4..48e4bf52a4aba23e3d3fc7de17c9178491de3be0 100644 (file)
@@ -644,12 +644,15 @@ objfile_relocate (struct objfile *objfile, struct section_offsets *new_offsets)
       }
   }
 
-  {
-    struct minimal_symbol *msym;
-    ALL_OBJFILE_MSYMBOLS (objfile, msym)
-      if (SYMBOL_SECTION (msym) >= 0)
-      SYMBOL_VALUE_ADDRESS (msym) += ANOFFSET (delta, SYMBOL_SECTION (msym));
-  }
+  if (objfile->msymbols != NULL)
+    {
+      struct minimal_symbol *msym;
+      ALL_OBJFILE_MSYMBOLS (objfile, msym)
+       if (SYMBOL_SECTION (msym) >= 0)
+         SYMBOL_VALUE_ADDRESS (msym)
+           += ANOFFSET (delta, SYMBOL_SECTION (msym));
+    }
+
   /* Relocating different sections by different amounts may cause the symbols
      to be out of order.  */
   msymbols_sort (objfile);
index d472efc62c93ea8836ec6e7618de8c3d94c94462..ea82a4166c3186c2e3a9c095dc26e0dea569009d 100644 (file)
@@ -300,6 +300,12 @@ struct objfile
        null symbol.  The array itself, as well as all the data that it points
        to, should be allocated on the symbol_obstack for this file. */
 
+    /* NOTE: carlton/2003-01-27: For a newly-created objfile, msymbols
+       is set to NULL, rather than a one-element array ending in a
+       null symbol.  ALL_MSYMBOLS already guarded against that case,
+       so that seems to be a valid possibility; it can be useful if
+       you like to create artificial objfiles.  */
+
     struct minimal_symbol *msymbols;
     int minimal_symbol_count;
 
@@ -564,6 +570,10 @@ extern int is_in_import_list (char *, struct objfile *);
 
 /* Traverse all minimal symbols in one objfile.  */
 
+/* NOTE: carlton/2003-01-27: Don't call this macro unless
+   objfile->msymbols is non-NULL.  See NOTE above in the declaration
+   of 'struct objfile'.  */
+
 #define        ALL_OBJFILE_MSYMBOLS(objfile, m) \
     for ((m) = (objfile) -> msymbols; SYMBOL_NAME(m) != NULL; (m)++)