* 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-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.
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;
}
}
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;
}
}
}
}
- {
- 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);
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;
/* 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)++)