diff options
author | Guido van Rossum <guido@python.org> | 2000-08-27 19:21:52 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2000-08-27 19:21:52 (GMT) |
commit | 0df002c45b0bf2bf23bb8c0a395e86f907a94d81 (patch) | |
tree | 2812bdefa81aca791ce27544f424271e5f857c67 /Python/bltinmodule.c | |
parent | 2f15b25da2060ab723e0bb82a8f4f713d547b2b8 (diff) | |
download | cpython-0df002c45b0bf2bf23bb8c0a395e86f907a94d81.zip cpython-0df002c45b0bf2bf23bb8c0a395e86f907a94d81.tar.gz cpython-0df002c45b0bf2bf23bb8c0a395e86f907a94d81.tar.bz2 |
Add three new APIs: PyRun_AnyFileEx(), PyRun_SimpleFileEx(),
PyRun_FileEx(). These are the same as their non-Ex counterparts but
have an extra argument, a flag telling them to close the file when
done.
Then this is used by Py_Main() and execfile() to close the file after
it is parsed but before it is executed.
Adding APIs seems strange given the feature freeze but it's the only
way I see to close the bug report without incompatible changes.
[ Bug #110616 ] source file stays open after parsing is done (PR#209)
Diffstat (limited to 'Python/bltinmodule.c')
-rw-r--r-- | Python/bltinmodule.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c index ea1269e..c2a7499 100644 --- a/Python/bltinmodule.c +++ b/Python/bltinmodule.c @@ -815,10 +815,7 @@ builtin_execfile(PyObject *self, PyObject *args) PyErr_SetFromErrno(PyExc_IOError); return NULL; } - res = PyRun_File(fp, filename, Py_file_input, globals, locals); - Py_BEGIN_ALLOW_THREADS - fclose(fp); - Py_END_ALLOW_THREADS + res = PyRun_FileEx(fp, filename, Py_file_input, globals, locals, 1); return res; } |