[Ada] Fix cleanup leak in ada-lang.c:old_renaming_is_invisible
gdb/ChangeLog: * ada-lang.c (old_renaming_is_invisible): Fix cleanup leak.
This commit is contained in:
parent
c5867ab65c
commit
1509e5737f
|
@ -1,3 +1,7 @@
|
|||
2013-05-21 Joel Brobecker <brobecker@adacore.com>
|
||||
|
||||
* ada-lang.c (old_renaming_is_invisible): Fix cleanup leak.
|
||||
|
||||
2013-05-21 Hui Zhu <hui@codesourcery.com>
|
||||
|
||||
* breakpoint.c (dprintf_breakpoint_ops): Remove its static.
|
||||
|
|
|
@ -4726,17 +4726,20 @@ static int
|
|||
old_renaming_is_invisible (const struct symbol *sym, const char *function_name)
|
||||
{
|
||||
char *scope;
|
||||
struct cleanup *old_chain;
|
||||
|
||||
if (SYMBOL_CLASS (sym) != LOC_TYPEDEF)
|
||||
return 0;
|
||||
|
||||
scope = xget_renaming_scope (SYMBOL_TYPE (sym));
|
||||
|
||||
make_cleanup (xfree, scope);
|
||||
old_chain = make_cleanup (xfree, scope);
|
||||
|
||||
/* If the rename has been defined in a package, then it is visible. */
|
||||
if (is_package_name (scope))
|
||||
return 0;
|
||||
{
|
||||
do_cleanups (old_chain);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Check that the rename is in the current function scope by checking
|
||||
that its name starts with SCOPE. */
|
||||
|
@ -4748,7 +4751,12 @@ old_renaming_is_invisible (const struct symbol *sym, const char *function_name)
|
|||
if (strncmp (function_name, "_ada_", 5) == 0)
|
||||
function_name += 5;
|
||||
|
||||
return (strncmp (function_name, scope, strlen (scope)) != 0);
|
||||
{
|
||||
int is_invisible = strncmp (function_name, scope, strlen (scope)) != 0;
|
||||
|
||||
do_cleanups (old_chain);
|
||||
return is_invisible;
|
||||
}
|
||||
}
|
||||
|
||||
/* Remove entries from SYMS that corresponds to a renaming entity that
|
||||
|
|
Loading…
Reference in New Issue