fix list_available_thread_groups
authorTom Tromey <tromey@redhat.com>
Thu, 30 May 2013 17:04:47 +0000 (17:04 +0000)
committerTom Tromey <tromey@redhat.com>
Thu, 30 May 2013 17:04:47 +0000 (17:04 +0000)
list_available_thread_groups, in mi-main.c, leaks a cleanup.
This changes it to call do_cleanups.

* mi/mi-main.c (list_available_thread_groups): Call do_cleanups.

gdb/ChangeLog
gdb/mi/mi-main.c

index c3303ea78dde28f2dfc30628baa488208d0720f3..53a3eb711ab0d86b1991cb25011acbdd04877da2 100644 (file)
@@ -1,3 +1,7 @@
+2013-05-30  Tom Tromey  <tromey@redhat.com>
+
+       * mi/mi-main.c (list_available_thread_groups): Call do_cleanups.
+
 2013-05-30  Tom Tromey  <tromey@redhat.com>
 
        * inf-ptrace.c (inf_ptrace_create_inferior): Unconditionally
index 9428e8c8df45b4d157304c738ba835cdbae461fb..f69cd8d62d75e2082c545bccf1b2e7e2da610b83 100644 (file)
@@ -681,6 +681,7 @@ list_available_thread_groups (VEC (int) *ids, int recurse)
   struct osdata_item *item;
   int ix_items;
   struct ui_out *uiout = current_uiout;
+  struct cleanup *cleanup;
 
   /* This keeps a map from integer (pid) to VEC (struct osdata_item *)*
      The vector contains information about all threads for the given pid.
@@ -690,7 +691,7 @@ list_available_thread_groups (VEC (int) *ids, int recurse)
 
   /* get_osdata will throw if it cannot return data.  */
   data = get_osdata ("processes");
-  make_cleanup_osdata_free (data);
+  cleanup = make_cleanup_osdata_free (data);
 
   if (recurse)
     {
@@ -793,6 +794,8 @@ list_available_thread_groups (VEC (int) *ids, int recurse)
 
       do_cleanups (back_to);
     }
+
+  do_cleanups (cleanup);
 }
 
 void