Skip to content

Commit 4406192

Browse files
Expand the cases in get_extension_kind().
1 parent 7c7e654 commit 4406192

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

Python/import.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1194,7 +1194,7 @@ is_core_module(PyInterpreterState *interp, PyObject *name, PyObject *path)
11941194

11951195
#ifndef NDEBUG
11961196
static enum _Py_ext_module_kind
1197-
get_extension_kind(PyModuleDef *def)
1197+
get_extension_kind(PyModuleDef *def, bool check_size)
11981198
{
11991199
enum _Py_ext_module_kind kind;
12001200
if (def == NULL) {
@@ -1205,6 +1205,12 @@ get_extension_kind(PyModuleDef *def)
12051205
else if (def->m_slots != NULL) {
12061206
kind = _Py_ext_module_kind_MULTIPHASE;
12071207
}
1208+
else if (check_size && def->m_size == -1) {
1209+
kind = _Py_ext_module_kind_SINGLEPHASE;
1210+
}
1211+
else if (def->m_base.m_init != NULL) {
1212+
kind = _Py_ext_module_kind_SINGLEPHASE;
1213+
}
12081214
else {
12091215
// This is probably single-phase init, but a multi-phase
12101216
// module *can* have NULL m_slots.
@@ -1216,7 +1222,7 @@ get_extension_kind(PyModuleDef *def)
12161222
static bool
12171223
is_singlephase(PyModuleDef *def, bool default_singlephase)
12181224
{
1219-
enum _Py_ext_module_kind kind = get_extension_kind(def);
1225+
enum _Py_ext_module_kind kind = get_extension_kind(def, default_singlephase);
12201226
if (kind == _Py_ext_module_kind_SINGLEPHASE) {
12211227
return true;
12221228
}

0 commit comments

Comments
 (0)