@@ -1372,17 +1372,17 @@ finalize_modules_delete_special(PyThreadState *tstate, int verbose)
1372
1372
if (verbose ) {
1373
1373
PySys_WriteStderr ("# restore sys.%s\n" , name );
1374
1374
}
1375
- PyObject * value = _PyDict_GetItemStringWithError (interp -> sysdict ,
1376
- orig_name );
1375
+ PyObject * value ;
1376
+ if (PyDict_GetItemStringRef (interp -> sysdict , orig_name , & value ) < 0 ) {
1377
+ PyErr_WriteUnraisable (NULL );
1378
+ }
1377
1379
if (value == NULL ) {
1378
- if (_PyErr_Occurred (tstate )) {
1379
- PyErr_WriteUnraisable (NULL );
1380
- }
1381
- value = Py_None ;
1380
+ value = Py_NewRef (Py_None );
1382
1381
}
1383
1382
if (PyDict_SetItemString (interp -> sysdict , name , value ) < 0 ) {
1384
1383
PyErr_WriteUnraisable (NULL );
1385
1384
}
1385
+ Py_DECREF (value );
1386
1386
}
1387
1387
}
1388
1388
@@ -2207,7 +2207,7 @@ _Py_IsInterpreterFinalizing(PyInterpreterState *interp)
2207
2207
static PyStatus
2208
2208
add_main_module (PyInterpreterState * interp )
2209
2209
{
2210
- PyObject * m , * d , * loader , * ann_dict ;
2210
+ PyObject * m , * d , * ann_dict ;
2211
2211
m = PyImport_AddModule ("__main__" );
2212
2212
if (m == NULL )
2213
2213
return _PyStatus_ERR ("can't create __main__ module" );
@@ -2239,11 +2239,13 @@ add_main_module(PyInterpreterState *interp)
2239
2239
* will be set if __main__ gets further initialized later in the startup
2240
2240
* process.
2241
2241
*/
2242
- loader = _PyDict_GetItemStringWithError (d , "__loader__" );
2243
- if (loader == NULL || loader == Py_None ) {
2244
- if (PyErr_Occurred ()) {
2245
- return _PyStatus_ERR ("Failed to test __main__.__loader__" );
2246
- }
2242
+ PyObject * loader ;
2243
+ if (PyDict_GetItemStringRef (d , "__loader__" , & loader ) < 0 ) {
2244
+ return _PyStatus_ERR ("Failed to test __main__.__loader__" );
2245
+ }
2246
+ int has_loader = !(loader == NULL || loader == Py_None );
2247
+ Py_XDECREF (loader );
2248
+ if (!has_loader ) {
2247
2249
PyObject * loader = _PyImport_GetImportlibLoader (interp ,
2248
2250
"BuiltinImporter" );
2249
2251
if (loader == NULL ) {
0 commit comments