* python/py-auto-load.c (source_section_scripts): Fix file

descriptor leak.
	* python/python.c (source_python_script_for_objfile): Tweak comments.
This commit is contained in:
Doug Evans 2011-09-19 19:01:40 +00:00
parent 3c9057f381
commit 562f943bcc
3 changed files with 18 additions and 11 deletions

View file

@ -1,3 +1,9 @@
2011-09-19 Doug Evans <dje@google.com>
* python/py-auto-load.c (source_section_scripts): Fix file
descriptor leak.
* python/python.c (source_python_script_for_objfile): Tweak comments.
2011-09-18 Yao Qi <yao@codesourcery.com> 2011-09-18 Yao Qi <yao@codesourcery.com>
Ulrich Weigand <ulrich.weigand@linaro.org> Ulrich Weigand <ulrich.weigand@linaro.org>

View file

@ -296,9 +296,6 @@ source_section_scripts (struct objfile *objfile, const char *source_name,
in_hash_table = maybe_add_script (pspace_info->loaded_scripts, file, in_hash_table = maybe_add_script (pspace_info->loaded_scripts, file,
opened ? full_path : NULL); opened ? full_path : NULL);
if (opened)
free (full_path);
if (! opened) if (! opened)
{ {
/* We don't throw an error, the program is still debuggable. */ /* We don't throw an error, the program is still debuggable. */
@ -310,12 +307,15 @@ Use `info auto-load-scripts [REGEXP]' to list them."),
GDBPY_AUTO_SECTION_NAME, objfile->name); GDBPY_AUTO_SECTION_NAME, objfile->name);
pspace_info->script_not_found_warning_printed = TRUE; pspace_info->script_not_found_warning_printed = TRUE;
} }
continue;
} }
else
/* If this file is not currently loaded, load it. */ {
if (! in_hash_table) /* If this file is not currently loaded, load it. */
source_python_script_for_objfile (objfile, stream, file); if (! in_hash_table)
source_python_script_for_objfile (objfile, stream, file);
fclose (stream);
free (full_path);
}
} }
} }

View file

@ -903,7 +903,10 @@ gdbpy_progspaces (PyObject *unused1, PyObject *unused2)
static struct objfile *gdbpy_current_objfile; static struct objfile *gdbpy_current_objfile;
/* Set the current objfile to OBJFILE and then read STREAM,FILE as /* Set the current objfile to OBJFILE and then read STREAM,FILE as
Python code. */ Python code.
STREAM is left open, it is up to the caller to close it.
If an exception occurs python will print the traceback and
clear the error indicator. */
void void
source_python_script_for_objfile (struct objfile *objfile, source_python_script_for_objfile (struct objfile *objfile,
@ -914,8 +917,6 @@ source_python_script_for_objfile (struct objfile *objfile,
cleanups = ensure_python_env (get_objfile_arch (objfile), current_language); cleanups = ensure_python_env (get_objfile_arch (objfile), current_language);
gdbpy_current_objfile = objfile; gdbpy_current_objfile = objfile;
/* Note: If an exception occurs python will print the traceback and
clear the error indicator. */
PyRun_SimpleFile (stream, file); PyRun_SimpleFile (stream, file);
do_cleanups (cleanups); do_cleanups (cleanups);