diff options
Diffstat (limited to 'gdb/solib-aix.c')
-rw-r--r-- | gdb/solib-aix.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/gdb/solib-aix.c b/gdb/solib-aix.c index 85c05a4..ab4f362 100644 --- a/gdb/solib-aix.c +++ b/gdb/solib-aix.c @@ -26,6 +26,7 @@ #include "xcoffread.h" #include "observable.h" #include "gdbcmd.h" +#include "common/scope-exit.h" /* Variable controlling the output of the debugging traces for this module. */ @@ -242,18 +243,19 @@ static VEC (lm_info_aix_p) * solib_aix_parse_libraries (const char *library) { VEC (lm_info_aix_p) *result = NULL; - struct cleanup *back_to = make_cleanup (solib_aix_free_library_list, - &result); + auto cleanup = make_scope_exit ([&] () + { + solib_aix_free_library_list (&result); + }); if (gdb_xml_parse_quick (_("aix library list"), "library-list-aix.dtd", library_list_elements, library, &result) == 0) { /* Parsed successfully, keep the result. */ - discard_cleanups (back_to); + cleanup.release (); return result; } - do_cleanups (back_to); return NULL; } |