From: Serhiy Storchaka <storchaka@gmail.com>
Date: Sun, 17 Jul 2016 11:15:28 +0000 (+0300)
Subject: Issue #27419: Added temporary workaround for subinterpreters.
X-Git-Tag: v3.6.0a4~158^2
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=80ab069f1b040b7418833d9c1facf77ad2bd4363;p=python

Issue #27419: Added temporary workaround for subinterpreters.
---

diff --git a/Python/import.c b/Python/import.c
index c1dc9a06c5..5025e755f4 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -1526,7 +1526,10 @@ PyImport_ImportModuleLevelObject(PyObject *name, PyObject *given_globals,
     _PyImport_AcquireLock();
 #endif
    /* From this point forward, goto error_with_unlock! */
-    builtins_import = _PyDict_GetItemId(interp->builtins_copy, &PyId___import__);
+    /* XXX interp->builtins_copy is NULL in subinterpreter! */
+    builtins_import = _PyDict_GetItemId(interp->builtins_copy ?
+                                        interp->builtins_copy :
+                                        interp->builtins, &PyId___import__);
     if (builtins_import == NULL) {
         PyErr_SetString(PyExc_ImportError, "__import__ not found");
         goto error_with_unlock;