Change iterate_over_symbols to return bool

This changes iterate_over_symbols to return a bool.  This allows it to
be reused in another context in a subsequent patch.

gdb/ChangeLog
2019-09-10  Tom Tromey  <tromey@adacore.com>

	* ada-lang.c (ada_iterate_over_symbols): Return bool.
	* language.h (struct language_defn) <la_iterate_over_symbols>:
	Return bool.
	* symtab.c (iterate_over_symbols): Return bool.
	* symtab.h (iterate_over_symbols): Return bool.
This commit is contained in:
Tom Tromey 2019-07-12 10:47:21 -06:00
parent 199b4314ef
commit 6969f124b9
5 changed files with 27 additions and 13 deletions

View file

@ -1,3 +1,11 @@
2019-09-10 Tom Tromey <tromey@adacore.com>
* ada-lang.c (ada_iterate_over_symbols): Return bool.
* language.h (struct language_defn) <la_iterate_over_symbols>:
Return bool.
* symtab.c (iterate_over_symbols): Return bool.
* symtab.h (iterate_over_symbols): Return bool.
2019-09-10 Tom Tromey <tromey@adacore.com>
* ada-lang.c (aux_add_nonlocal_symbols): Change type.

View file

@ -5740,7 +5740,7 @@ ada_lookup_symbol_list (const char *name, const struct block *block,
/* Implementation of the la_iterate_over_symbols method. */
static void
static bool
ada_iterate_over_symbols
(const struct block *block, const lookup_name_info &name,
domain_enum domain,
@ -5754,8 +5754,10 @@ ada_iterate_over_symbols
for (i = 0; i < ndefs; ++i)
{
if (!callback (&results[i]))
break;
return false;
}
return true;
}
/* The result is as for ada_lookup_symbol_list with FULL_SEARCH set

View file

@ -407,7 +407,7 @@ struct language_defn
This field may not be NULL. If the language does not need any
special processing here, 'iterate_over_symbols' should be
used as the definition. */
void (*la_iterate_over_symbols)
bool (*la_iterate_over_symbols)
(const struct block *block, const lookup_name_info &name,
domain_enum domain,
gdb::function_view<symbol_found_callback_ftype> callback);

View file

@ -2822,15 +2822,9 @@ basic_lookup_transparent_type (const char *name)
return (struct type *) 0;
}
/* Iterate over the symbols named NAME, matching DOMAIN, in BLOCK.
/* See symtab.h. */
For each symbol that matches, CALLBACK is called. The symbol is
passed to the callback.
If CALLBACK returns false, the iteration ends. Otherwise, the
search continues. */
void
bool
iterate_over_symbols (const struct block *block,
const lookup_name_info &name,
const domain_enum domain,
@ -2847,9 +2841,10 @@ iterate_over_symbols (const struct block *block,
struct block_symbol block_sym = {sym, block};
if (!callback (&block_sym))
return;
return false;
}
}
return true;
}
/* Find the compunit symtab associated with PC and SECTION.

View file

@ -2092,7 +2092,16 @@ std::vector<CORE_ADDR> find_pcs_for_symtab_line
typedef bool (symbol_found_callback_ftype) (struct block_symbol *bsym);
void iterate_over_symbols (const struct block *block,
/* Iterate over the symbols named NAME, matching DOMAIN, in BLOCK.
For each symbol that matches, CALLBACK is called. The symbol is
passed to the callback.
If CALLBACK returns false, the iteration ends and this function
returns false. Otherwise, the search continues, and the function
eventually returns true. */
bool iterate_over_symbols (const struct block *block,
const lookup_name_info &name,
const domain_enum domain,
gdb::function_view<symbol_found_callback_ftype> callback);