gdb/
authorJan Kratochvil <jan.kratochvil@redhat.com>
Thu, 17 Jan 2013 19:55:18 +0000 (19:55 +0000)
committerJan Kratochvil <jan.kratochvil@redhat.com>
Thu, 17 Jan 2013 19:55:18 +0000 (19:55 +0000)
* symtab.c (iterate_over_some_symtabs): New variable cleanups,
initialize it by existing make_cleanup.  Call new do_cleanups.

gdb/ChangeLog
gdb/symtab.c

index a98621c3fb728b248c886dfa36edd31f6baef213..e9f2e7cf92cebad9a124f89f3444d16953ec8f0c 100644 (file)
@@ -1,3 +1,8 @@
+2013-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       * symtab.c (iterate_over_some_symtabs): New variable cleanups,
+       initialize it by existing make_cleanup.  Call new do_cleanups.
+
 2013-01-17  Tom Tromey  <tromey@redhat.com>
 
        * cp-abi.c (cp_abi_completer): New function.
index f4ed8b98aa497b4b854b5fa4091aa2b5946667ca..c304f70b6a4e1b62fd2d2b5f4a565e644d8ffa1b 100644 (file)
@@ -241,19 +241,26 @@ iterate_over_some_symtabs (const char *name,
       {
         const char *fullname = symtab_to_fullname (s);
        char *rp = gdb_realpath (fullname);
+       struct cleanup *cleanups = make_cleanup (xfree, rp);
 
-       make_cleanup (xfree, rp);
        if (FILENAME_CMP (real_path, rp) == 0)
          {
            if (callback (s, data))
-             return 1;
+             {
+               do_cleanups (cleanups);
+               return 1;
+             }
          }
 
        if (!is_abs && compare_filenames_for_search (rp, name))
          {
            if (callback (s, data))
-             return 1;
+             {
+               do_cleanups (cleanups);
+               return 1;
+             }
          }
+       do_cleanups (cleanups);
       }
     }