Purge symtab of make_cleanup_func.

Pass correct arg to make_cleanup_free_search_symbols.
This commit is contained in:
Andrew Cagney 2000-05-29 13:18:15 +00:00
parent 1ae00f9d91
commit 5bd987222f
3 changed files with 27 additions and 6 deletions

View File

@ -1,3 +1,12 @@
Mon May 29 15:41:10 2000 Andrew Cagney <cagney@b1.cygnus.com>
* symtab.h (make_cleanup_free_search_symbols): Add declaration.
* symtab.c (make_cleanup_free_search_symbols,
do_free_search_symbols_cleanup): New functions.
(search_symbols, symtab_symbol_info, rbreak_command): Update.
(search_symbols): Pass ``sr'', and not its address, to
make_cleanup_free_search_symbols.
2000-05-28 Kevin Buettner <kevinb@redhat.com>
* config/nm-linux.h (GDB_GREGSET_T, GDB_FPREGSET_T): Fix typos.

View File

@ -3564,6 +3564,19 @@ free_search_symbols (symbols)
}
}
static void
do_free_search_symbols_cleanup (void *symbols)
{
free_search_symbols (symbols);
}
struct cleanup *
make_cleanup_free_search_symbols (struct symbol_search *symbols)
{
return make_cleanup (do_free_search_symbols_cleanup, symbols);
}
/* Search the symbol table for matches to the regular expression REGEXP,
returning the results in *MATCHES.
@ -3796,8 +3809,7 @@ search_symbols (regexp, kind, nfiles, files, matches)
if (tail == NULL)
{
sr = psr;
old_chain = make_cleanup ((make_cleanup_func)
free_search_symbols, sr);
old_chain = make_cleanup_free_search_symbols (sr);
}
else
tail->next = psr;
@ -3841,8 +3853,7 @@ search_symbols (regexp, kind, nfiles, files, matches)
if (tail == NULL)
{
sr = psr;
old_chain = make_cleanup ((make_cleanup_func)
free_search_symbols, &sr);
old_chain = make_cleanup_free_search_symbols (sr);
}
else
tail->next = psr;
@ -3957,7 +3968,7 @@ symtab_symbol_info (regexp, kind, from_tty)
/* must make sure that if we're interrupted, symbols gets freed */
search_symbols (regexp, kind, 0, (char **) NULL, &symbols);
old_chain = make_cleanup ((make_cleanup_func) free_search_symbols, symbols);
old_chain = make_cleanup_free_search_symbols (symbols);
printf_filtered (regexp
? "All %ss matching regular expression \"%s\":\n"
@ -4045,7 +4056,7 @@ rbreak_command (regexp, from_tty)
struct cleanup *old_chain;
search_symbols (regexp, FUNCTIONS_NAMESPACE, 0, (char **) NULL, &ss);
old_chain = make_cleanup ((make_cleanup_func) free_search_symbols, ss);
old_chain = make_cleanup_free_search_symbols (ss);
for (p = ss; p != NULL; p = p->next)
{

View File

@ -1441,5 +1441,6 @@ struct symbol_search
extern void search_symbols (char *, namespace_enum, int, char **,
struct symbol_search **);
extern void free_search_symbols (struct symbol_search *);
extern struct cleanup *make_cleanup_free_search_symbols (struct symbol_search *);
#endif /* !defined(SYMTAB_H) */