aboutsummaryrefslogtreecommitdiff
path: root/gdb/objc-lang.c
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2018-11-23 17:32:08 -0700
committerTom Tromey <tom@tromey.com>2019-01-09 18:28:15 -0700
commit5325b9bf1ee283c40f076334eb3ea66e1f0a6ade (patch)
tree4964d0282ac4cb82ed0a6691cbccf4062c3799d8 /gdb/objc-lang.c
parentcac85af2467c9bac326b397b150274d95d2916a5 (diff)
downloadgdb-5325b9bf1ee283c40f076334eb3ea66e1f0a6ade.zip
gdb-5325b9bf1ee283c40f076334eb3ea66e1f0a6ade.tar.gz
gdb-5325b9bf1ee283c40f076334eb3ea66e1f0a6ade.tar.bz2
Remove ALL_MSYMBOLS and ALL_OBJFILE_MSYMBOLS
This removes the ALL_MSYMBOLS and ALL_OBJFILE_MSYMBOLS macros, replacing their uses with ranged for loops. In a couple of spots, a new declaration was needed in order to work around shadowing; these are just temporary and are removed in a subsequent patch. gdb/ChangeLog 2019-01-09 Tom Tromey <tom@tromey.com> * symtab.c (search_symbols) (default_collect_symbol_completion_matches_break_on): Use objfile_msymbols. * ada-lang.c (ada_lookup_simple_minsym) (ada_collect_symbol_completion_matches): Use objfile_msymbols. * minsyms.c (find_solib_trampoline_target): Use objfile_msymbols. * hppa-tdep.c (hppa_lookup_stub_minimal_symbol): Use objfile_msymbols. * coffread.c (coff_symfile_read): Use objfile_msymbols. * symmisc.c (dump_msymbols): Use objfile_msymbols. * objc-lang.c (find_methods): Use objfile_msymbols. (info_selectors_command, info_classes_command): Likewise. * stabsread.c (scan_file_globals): Use objfile_msymbols. * objfiles.h (class objfile_msymbols): New. (ALL_OBJFILE_MSYMBOLS): Remove. (ALL_MSYMBOLS): Remove.
Diffstat (limited to 'gdb/objc-lang.c')
-rw-r--r--gdb/objc-lang.c137
1 files changed, 72 insertions, 65 deletions
diff --git a/gdb/objc-lang.c b/gdb/objc-lang.c
index ec0ea56..22c12ff 100644
--- a/gdb/objc-lang.c
+++ b/gdb/objc-lang.c
@@ -562,8 +562,6 @@ compare_selectors (const void *a, const void *b)
static void
info_selectors_command (const char *regexp, int from_tty)
{
- struct objfile *objfile;
- struct minimal_symbol *msymbol;
const char *name;
char *val;
int matches = 0;
@@ -607,33 +605,36 @@ info_selectors_command (const char *regexp, int from_tty)
}
/* First time thru is JUST to get max length and count. */
- ALL_MSYMBOLS (objfile, msymbol)
+ for (objfile *objfile : all_objfiles (current_program_space))
{
- QUIT;
- name = MSYMBOL_NATURAL_NAME (msymbol);
- if (name
- && (name[0] == '-' || name[0] == '+')
- && name[1] == '[') /* Got a method name. */
+ for (minimal_symbol *msymbol : objfile_msymbols (objfile))
{
- /* Filter for class/instance methods. */
- if (plusminus && name[0] != plusminus)
- continue;
- /* Find selector part. */
- name = (char *) strchr (name+2, ' ');
- if (name == NULL)
+ QUIT;
+ name = MSYMBOL_NATURAL_NAME (msymbol);
+ if (name
+ && (name[0] == '-' || name[0] == '+')
+ && name[1] == '[') /* Got a method name. */
{
- complaint (_("Bad method name '%s'"),
- MSYMBOL_NATURAL_NAME (msymbol));
- continue;
- }
- if (regexp == NULL || re_exec(++name) != 0)
- {
- const char *mystart = name;
- const char *myend = strchr (mystart, ']');
+ /* Filter for class/instance methods. */
+ if (plusminus && name[0] != plusminus)
+ continue;
+ /* Find selector part. */
+ name = (char *) strchr (name+2, ' ');
+ if (name == NULL)
+ {
+ complaint (_("Bad method name '%s'"),
+ MSYMBOL_NATURAL_NAME (msymbol));
+ continue;
+ }
+ if (regexp == NULL || re_exec(++name) != 0)
+ {
+ const char *mystart = name;
+ const char *myend = strchr (mystart, ']');
- if (myend && (myend - mystart > maxlen))
- maxlen = myend - mystart; /* Get longest selector. */
- matches++;
+ if (myend && (myend - mystart > maxlen))
+ maxlen = myend - mystart; /* Get longest selector. */
+ matches++;
+ }
}
}
}
@@ -644,21 +645,24 @@ info_selectors_command (const char *regexp, int from_tty)
sym_arr = XALLOCAVEC (struct symbol *, matches);
matches = 0;
- ALL_MSYMBOLS (objfile, msymbol)
+ for (objfile *objfile : all_objfiles (current_program_space))
{
- QUIT;
- name = MSYMBOL_NATURAL_NAME (msymbol);
- if (name &&
- (name[0] == '-' || name[0] == '+') &&
- name[1] == '[') /* Got a method name. */
+ for (minimal_symbol *msymbol : objfile_msymbols (objfile))
{
- /* Filter for class/instance methods. */
- if (plusminus && name[0] != plusminus)
- continue;
- /* Find selector part. */
- name = (char *) strchr(name+2, ' ');
- if (regexp == NULL || re_exec(++name) != 0)
- sym_arr[matches++] = (struct symbol *) msymbol;
+ QUIT;
+ name = MSYMBOL_NATURAL_NAME (msymbol);
+ if (name &&
+ (name[0] == '-' || name[0] == '+') &&
+ name[1] == '[') /* Got a method name. */
+ {
+ /* Filter for class/instance methods. */
+ if (plusminus && name[0] != plusminus)
+ continue;
+ /* Find selector part. */
+ name = (char *) strchr(name+2, ' ');
+ if (regexp == NULL || re_exec(++name) != 0)
+ sym_arr[matches++] = (struct symbol *) msymbol;
+ }
}
}
@@ -723,8 +727,6 @@ compare_classes (const void *a, const void *b)
static void
info_classes_command (const char *regexp, int from_tty)
{
- struct objfile *objfile;
- struct minimal_symbol *msymbol;
const char *name;
char *val;
int matches = 0;
@@ -757,23 +759,26 @@ info_classes_command (const char *regexp, int from_tty)
}
/* First time thru is JUST to get max length and count. */
- ALL_MSYMBOLS (objfile, msymbol)
+ for (objfile *objfile : all_objfiles (current_program_space))
{
- QUIT;
- name = MSYMBOL_NATURAL_NAME (msymbol);
- if (name &&
- (name[0] == '-' || name[0] == '+') &&
- name[1] == '[') /* Got a method name. */
- if (regexp == NULL || re_exec(name+2) != 0)
- {
- /* Compute length of classname part. */
- const char *mystart = name + 2;
- const char *myend = strchr (mystart, ' ');
+ for (minimal_symbol *msymbol : objfile_msymbols (objfile))
+ {
+ QUIT;
+ name = MSYMBOL_NATURAL_NAME (msymbol);
+ if (name &&
+ (name[0] == '-' || name[0] == '+') &&
+ name[1] == '[') /* Got a method name. */
+ if (regexp == NULL || re_exec(name+2) != 0)
+ {
+ /* Compute length of classname part. */
+ const char *mystart = name + 2;
+ const char *myend = strchr (mystart, ' ');
- if (myend && (myend - mystart > maxlen))
- maxlen = myend - mystart;
- matches++;
- }
+ if (myend && (myend - mystart > maxlen))
+ maxlen = myend - mystart;
+ matches++;
+ }
+ }
}
if (matches)
{
@@ -781,15 +786,18 @@ info_classes_command (const char *regexp, int from_tty)
regexp ? regexp : "*");
sym_arr = XALLOCAVEC (struct symbol *, matches);
matches = 0;
- ALL_MSYMBOLS (objfile, msymbol)
+ for (objfile *objfile : all_objfiles (current_program_space))
{
- QUIT;
- name = MSYMBOL_NATURAL_NAME (msymbol);
- if (name &&
- (name[0] == '-' || name[0] == '+') &&
- name[1] == '[') /* Got a method name. */
- if (regexp == NULL || re_exec(name+2) != 0)
- sym_arr[matches++] = (struct symbol *) msymbol;
+ for (minimal_symbol *msymbol : objfile_msymbols (objfile))
+ {
+ QUIT;
+ name = MSYMBOL_NATURAL_NAME (msymbol);
+ if (name &&
+ (name[0] == '-' || name[0] == '+') &&
+ name[1] == '[') /* Got a method name. */
+ if (regexp == NULL || re_exec(name+2) != 0)
+ sym_arr[matches++] = (struct symbol *) msymbol;
+ }
}
qsort (sym_arr, matches, sizeof (struct minimal_symbol *),
@@ -987,7 +995,6 @@ find_methods (char type, const char *theclass, const char *category,
for (objfile *objfile : all_objfiles (current_program_space))
{
unsigned int *objc_csym;
- struct minimal_symbol *msymbol = NULL;
/* The objfile_csym variable counts the number of ObjC methods
that this objfile defines. We save that count as a private
@@ -1001,7 +1008,7 @@ find_methods (char type, const char *theclass, const char *category,
/* There are no ObjC symbols in this objfile. Skip it entirely. */
continue;
- ALL_OBJFILE_MSYMBOLS (objfile, msymbol)
+ for (minimal_symbol *msymbol : objfile_msymbols (objfile))
{
QUIT;