diff options
Diffstat (limited to 'Objects/typevarobject.c')
-rw-r--r-- | Objects/typevarobject.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/Objects/typevarobject.c b/Objects/typevarobject.c index 6730ebf..6aa0d8a 100644 --- a/Objects/typevarobject.c +++ b/Objects/typevarobject.c @@ -1319,8 +1319,13 @@ typealias_module(PyObject *self, void *unused) return Py_NewRef(ta->module); } if (ta->compute_value != NULL) { - // PyFunction_GetModule() returns a borrowed reference - return Py_NewRef(PyFunction_GetModule(ta->compute_value)); + PyObject* mod = PyFunction_GetModule(ta->compute_value); + if (mod != NULL) { + // PyFunction_GetModule() returns a borrowed reference, + // and it may return NULL (e.g., for functions defined + // in an exec()'ed block). + return Py_NewRef(mod); + } } Py_RETURN_NONE; } |