From b58fac154415269f10610129df559cebbfbb7e9b Mon Sep 17 00:00:00 2001 From: tromey Date: Thu, 30 Jun 2011 19:29:54 +0000 Subject: [PATCH] * varobj.c (varobj_create): Call do_cleanups on early exit path. * valops.c (find_overload_match): Call do_cleanups on early exit path. * solib.c (solib_find): Call do_cleanups on early exit path. --- gdb/ChangeLog | 7 +++++++ gdb/solib.c | 1 + gdb/valops.c | 1 + gdb/varobj.c | 1 + 4 files changed, 10 insertions(+) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index c625a006ff..d10df1c3b5 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,12 @@ 2011-06-30 Tom Tromey + * varobj.c (varobj_create): Call do_cleanups on early exit path. + * valops.c (find_overload_match): Call do_cleanups on early exit + path. + * solib.c (solib_find): Call do_cleanups on early exit path. + +2011-06-30 Tom Tromey + * symfile-mem.c (symbol_file_add_from_memory): Call do_cleanups. * solib-svr4.c (open_symbol_file_object): Call do_cleanups on all return paths. Defer final do_cleanups until last return. diff --git a/gdb/solib.c b/gdb/solib.c index a9f46e0009..94f8f13422 100644 --- a/gdb/solib.c +++ b/gdb/solib.c @@ -254,6 +254,7 @@ solib_find (char *in_pathname, int *fd) if (remote_filename_p (temp_pathname)) { *fd = -1; + do_cleanups (old_chain); return temp_pathname; } diff --git a/gdb/valops.c b/gdb/valops.c index 803b73cdca..ae1121201c 100644 --- a/gdb/valops.c +++ b/gdb/valops.c @@ -2585,6 +2585,7 @@ find_overload_match (struct type **arg_types, int nargs, if (*valp) { *staticp = 1; + do_cleanups (all_cleanups); return 0; } } diff --git a/gdb/varobj.c b/gdb/varobj.c index 07dbc27671..4f8ded71dc 100644 --- a/gdb/varobj.c +++ b/gdb/varobj.c @@ -580,6 +580,7 @@ varobj_create (char *objname, return a sensible error. */ if (!gdb_parse_exp_1 (&p, block, 0, &var->root->exp)) { + do_cleanups (old_chain); return NULL; } -- 2.11.0