]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
gdb/
authorJan Kratochvil <jan.kratochvil@redhat.com>
Mon, 19 Mar 2012 18:23:52 +0000 (18:23 +0000)
committerJan Kratochvil <jan.kratochvil@redhat.com>
Mon, 19 Mar 2012 18:23:52 +0000 (18:23 +0000)
Code cleanup.
* python/py-auto-load.c (source_section_scripts): New variable back_to.
Turn fclose and xfree calls into make_cleanup_fclose and make_cleanup
with xfree.
(auto_load_objfile_script): Turn fclose into make_cleanup_fclose.

gdb/ChangeLog
gdb/python/py-auto-load.c

index d9b07b043fa8b1fcea33597d3e8f96a9d66a17d2..3059d696314c36d91b483bdff4faa375e0c4ef19 100644 (file)
@@ -1,3 +1,11 @@
+2012-03-19  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       Code cleanup.
+       * python/py-auto-load.c (source_section_scripts): New variable back_to.
+       Turn fclose and xfree calls into make_cleanup_fclose and make_cleanup
+       with xfree.
+       (auto_load_objfile_script): Turn fclose into make_cleanup_fclose.
+
 2012-03-19  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
        * NEWS: Describe new options --init-command=FILE, -ix and
index e297bf3afc314dc95ef89d1dc5651b8ef2297d18..14e75a7220a0bfe251c54d14c0b8e45e44dd0b4a 100644 (file)
@@ -254,6 +254,7 @@ source_section_scripts (struct objfile *objfile, const char *source_name,
       FILE *stream;
       char *full_path;
       int opened, in_hash_table;
+      struct cleanup *back_to;
 
       if (*p != 1)
        {
@@ -286,6 +287,13 @@ source_section_scripts (struct objfile *objfile, const char *source_name,
       opened = find_and_open_script (file, 1 /*search_path*/,
                                     &stream, &full_path);
 
+      back_to = make_cleanup (null_cleanup, NULL);
+      if (opened)
+       {
+         make_cleanup_fclose (stream);
+         make_cleanup (xfree, full_path);
+       }
+
       /* If one script isn't found it's not uncommon for more to not be
         found either.  We don't want to print an error message for each
         script, too much noise.  Instead, we print the warning once and tell
@@ -313,9 +321,9 @@ Use `info auto-load-scripts [REGEXP]' to list them."),
          /* If this file is not currently loaded, load it.  */
          if (! in_hash_table)
            source_python_script_for_objfile (objfile, stream, full_path);
-         fclose (stream);
-         xfree (full_path);
        }
+
+      do_cleanups (back_to);
     }
 }
 
@@ -420,6 +428,8 @@ auto_load_objfile_script (struct objfile *objfile, const char *suffix)
     {
       struct auto_load_pspace_info *pspace_info;
 
+      make_cleanup_fclose (input);
+
       /* Add this script to the hash table too so "info auto-load-scripts"
         can print it.  */
       pspace_info =
@@ -432,7 +442,6 @@ auto_load_objfile_script (struct objfile *objfile, const char *suffix)
         and these scripts are required to be idempotent under multiple
         loads anyway.  */
       source_python_script_for_objfile (objfile, input, debugfile);
-      fclose (input);
     }
 
   do_cleanups (cleanups);