/* Validate the result (and populate "res". */
if (m == NULL) {
+ /* The init func for multi-phase init modules is expected
+ * to return a PyModuleDef after calling PyModuleDef_Init().
+ * That function never raises an exception nor returns NULL,
+ * so at this point it must be a single-phase init modules. */
+ res.kind = _Py_ext_module_kind_SINGLEPHASE;
if (PyErr_Occurred()) {
_Py_ext_module_loader_result_set_error(
&res, _Py_ext_module_loader_result_EXCEPTION);
}
goto error;
} else if (PyErr_Occurred()) {
+ /* Likewise, we infer that this is a single-phase init module. */
+ res.kind = _Py_ext_module_kind_SINGLEPHASE;
_Py_ext_module_loader_result_set_error(
&res, _Py_ext_module_loader_result_ERR_UNREPORTED_EXC);
/* We would probably be correct to decref m here,