* varobj.c (varobj_create): Call do_cleanups on early exit path.
authorTom Tromey <tromey@redhat.com>
Thu, 30 Jun 2011 19:29:55 +0000 (19:29 +0000)
committerTom Tromey <tromey@redhat.com>
Thu, 30 Jun 2011 19:29:55 +0000 (19:29 +0000)
* 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
gdb/solib.c
gdb/valops.c
gdb/varobj.c

index c625a00..d10df1c 100644 (file)
@@ -1,5 +1,12 @@
 2011-06-30  Tom Tromey  <tromey@redhat.com>
 
+       * 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  <tromey@redhat.com>
+
        * 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.
index a9f46e0..94f8f13 100644 (file)
@@ -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;
     }
 
index 803b73c..ae11212 100644 (file)
@@ -2585,6 +2585,7 @@ find_overload_match (struct type **arg_types, int nargs,
          if (*valp)
            {
              *staticp = 1;
+             do_cleanups (all_cleanups);
              return 0;
            }
        }
index 07dbc27..4f8ded7 100644 (file)
@@ -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;
        }