Blob Blame History Raw
http://sourceware.org/ml/gdb-cvs/2012-01/msg00202.html

### src/gdb/ChangeLog	2012/01/24 19:12:31	1.13771
### src/gdb/ChangeLog	2012/01/24 20:56:33	1.13772
## -1,3 +1,12 @@
+2012-01-24  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	Code cleanup.
+	* cli/cli-cmds.c (source_script_from_stream): Never fclose STREAM.
+	Update the function comment for it.
+	(source_script_with_search): Call make_cleanup_fclose for STREAM.
+	* cli/cli-script.c (script_from_file): Do not call make_cleanup_fclose
+	for STREAM.
+
 2012-01-24  Pedro Alves  <palves@redhat.com>
 
 	* breakpoint.c (bpstat_stop_status): Moving clearing print_it
--- src/gdb/cli/cli-cmds.c	2012/01/23 16:37:03	1.123
+++ src/gdb/cli/cli-cmds.c	2012/01/24 20:56:33	1.124
@@ -527,8 +527,7 @@
   return 1;
 }
 
-/* Load script FILE, which has already been opened as STREAM.
-   STREAM is closed before we return.  */
+/* Load script FILE, which has already been opened as STREAM.  */
 
 static void
 source_script_from_stream (FILE *stream, const char *file)
@@ -556,12 +555,9 @@
 	  else
 	    {
 	      /* Nope, just punt.  */
-	      fclose (stream);
 	      throw_exception (e);
 	    }
 	}
-      else
-	fclose (stream);
     }
   else
     script_from_file (stream, file);
@@ -595,6 +591,7 @@
     }
 
   old_cleanups = make_cleanup (xfree, full_path);
+  make_cleanup_fclose (stream);
   /* The python support reopens the file, so we need to pass full_path here
      in case the file was found on the search path.  It's useful to do this
      anyway so that error messages show the actual file used.  But only do
--- src/gdb/cli/cli-script.c	2012/01/04 08:17:17	1.73
+++ src/gdb/cli/cli-script.c	2012/01/24 20:56:33	1.74
@@ -1614,11 +1614,9 @@
   if (stream == NULL)
     internal_error (__FILE__, __LINE__, _("called with NULL file pointer!"));
 
-  old_cleanups = make_cleanup_fclose (stream);
-
   old_lines.old_line = source_line_number;
   old_lines.old_file = source_file_name;
-  make_cleanup (source_cleanup_lines, &old_lines);
+  old_cleanups = make_cleanup (source_cleanup_lines, &old_lines);
   source_line_number = 0;
   source_file_name = file;
   /* This will get set every time we read a line.  So it won't stay ""