Purge symtab of make_cleanup_func.
Pass correct arg to make_cleanup_free_search_symbols.
This commit is contained in:
parent
1ae00f9d91
commit
5bd987222f
3 changed files with 27 additions and 6 deletions
|
@ -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.
|
||||
|
|
23
gdb/symtab.c
23
gdb/symtab.c
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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) */
|
||||
|
|
Loading…
Reference in a new issue