Skip to content

Commit cdec6a6

Browse files
authored
Merge pull request python#12 from DinoV/lazy_mt
2 parents ee77665 + a3ddde4 commit cdec6a6

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

Python/specialize.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -803,7 +803,7 @@ specialize_module_load_attr_lock_held(PyDictObject *dict, _Py_CODEUNIT *instr, P
803803
if (PyDict_GetItemRef((PyObject *)dict, name, &value) < 0 ||
804804
(value != NULL && PyLazyImport_CheckExact(value))) {
805805
Py_XDECREF(value);
806-
SPECIALIZATION_FAIL(SPEC_FAIL_ATTR_MODULE_LAZY_VALUE, SPEC_FAIL_OUT_OF_VERSIONS);
806+
SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_ATTR_MODULE_LAZY_VALUE);
807807
return -1;
808808
}
809809
Py_XDECREF(value);
@@ -1707,6 +1707,13 @@ specialize_load_global_lock_held(
17071707
SPECIALIZATION_FAIL(LOAD_GLOBAL, SPEC_FAIL_LOAD_GLOBAL_NON_STRING_OR_SPLIT);
17081708
goto fail;
17091709
}
1710+
PyObject *value = NULL;
1711+
if (PyDict_GetItemRef(globals, name, &value) < 0 ||
1712+
(value != NULL && PyLazyImport_CheckExact(value))) {
1713+
SPECIALIZATION_FAIL(LOAD_GLOBAL, SPEC_FAIL_ATTR_MODULE_LAZY_VALUE);
1714+
Py_DECREF(value);
1715+
}
1716+
Py_XDECREF(value);
17101717
Py_ssize_t index = _PyDictKeys_StringLookup(globals_keys, name);
17111718
if (index == DKIX_ERROR) {
17121719
SPECIALIZATION_FAIL(LOAD_GLOBAL, SPEC_FAIL_EXPECTED_ERROR);

0 commit comments

Comments
 (0)