mirror of
https://github.com/python/cpython.git
synced 2025-07-07 19:35:27 +00:00
gh-116437: Use new C API PyDict_Pop() to simplify the code (GH-116438)
This commit is contained in:
parent
882fcede83
commit
72d3cc94cd
15 changed files with 116 additions and 119 deletions
|
@ -452,7 +452,7 @@ _PyRun_SimpleFileObject(FILE *fp, PyObject *filename, int closeit,
|
|||
v = run_pyc_file(pyc_fp, dict, dict, flags);
|
||||
} else {
|
||||
/* When running from stdin, leave __main__.__loader__ alone */
|
||||
if (PyUnicode_CompareWithASCIIString(filename, "<stdin>") != 0 &&
|
||||
if ((!PyUnicode_Check(filename) || !PyUnicode_EqualToUTF8(filename, "<stdin>")) &&
|
||||
set_main_loader(dict, filename, "SourceFileLoader") < 0) {
|
||||
fprintf(stderr, "python: failed to set __main__.__loader__\n");
|
||||
ret = -1;
|
||||
|
@ -472,11 +472,11 @@ _PyRun_SimpleFileObject(FILE *fp, PyObject *filename, int closeit,
|
|||
|
||||
done:
|
||||
if (set_file_name) {
|
||||
if (PyDict_DelItemString(dict, "__file__")) {
|
||||
PyErr_Clear();
|
||||
if (PyDict_PopString(dict, "__file__", NULL) < 0) {
|
||||
PyErr_Print();
|
||||
}
|
||||
if (PyDict_DelItemString(dict, "__cached__")) {
|
||||
PyErr_Clear();
|
||||
if (PyDict_PopString(dict, "__cached__", NULL) < 0) {
|
||||
PyErr_Print();
|
||||
}
|
||||
}
|
||||
Py_XDECREF(main_module);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue