@@ -1557,7 +1557,12 @@ create_builtin(PyThreadState *tstate, PyObject *name, PyObject *spec)
1557
1557
}
1558
1558
1559
1559
PyObject * mod = import_find_extension (tstate , & info );
1560
- if (mod || _PyErr_Occurred (tstate )) {
1560
+ if (mod != NULL ) {
1561
+ assert (!_PyErr_Occurred (tstate ));
1562
+ assert (is_singlephase (_PyModule_GetDef (mod )));
1563
+ goto finally ;
1564
+ }
1565
+ else if (_PyErr_Occurred (tstate )) {
1561
1566
goto finally ;
1562
1567
}
1563
1568
@@ -3943,20 +3948,23 @@ _imp_create_dynamic_impl(PyObject *module, PyObject *spec, PyObject *file)
3943
3948
/*[clinic end generated code: output=83249b827a4fde77 input=c31b954f4cf4e09d]*/
3944
3949
{
3945
3950
PyObject * mod = NULL ;
3951
+ PyThreadState * tstate = _PyThreadState_GET ();
3946
3952
3947
3953
struct _Py_ext_module_loader_info info ;
3948
3954
if (_Py_ext_module_loader_info_init_from_spec (& info , spec ) < 0 ) {
3949
3955
return NULL ;
3950
3956
}
3951
3957
3952
- PyThreadState * tstate = _PyThreadState_GET ();
3953
3958
mod = import_find_extension (tstate , & info );
3954
- if (mod != NULL || _PyErr_Occurred (tstate )) {
3955
- assert (mod == NULL || !_PyErr_Occurred (tstate ));
3959
+ if (mod != NULL ) {
3960
+ assert (!_PyErr_Occurred (tstate ));
3961
+ assert (is_singlephase (_PyModule_GetDef (mod )));
3956
3962
goto finally ;
3957
3963
}
3958
-
3959
- /* Is multi-phase init or this is the first time being loaded. */
3964
+ else if (_PyErr_Occurred (tstate )) {
3965
+ goto finally ;
3966
+ }
3967
+ /* Otherwise it must be multi-phase init or the first time it's loaded. */
3960
3968
3961
3969
if (PySys_Audit ("import" , "OOOOO" , info .name , info .filename ,
3962
3970
Py_None , Py_None , Py_None ) < 0 )
0 commit comments