]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
- Importing should now be safe with multiple Py_Initialize/Py_Finalize
authorMoshe Zadka <moshez@math.huji.ac.il>
Fri, 30 Mar 2001 19:45:13 +0000 (19:45 +0000)
committerMoshe Zadka <moshez@math.huji.ac.il>
Fri, 30 Mar 2001 19:45:13 +0000 (19:45 +0000)
  sequences.

Misc/NEWS
Python/import.c

index 25638538893b5b9359d5a705c9f25d31a2a49689..262d87ef8f9069dc6366bf51493687c32a592298 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -45,6 +45,9 @@ http://sourceforge.net/tracker/index.php?func=detail&aid=<id>&group_id=5470&atid
 
 - Fixed memory leak in from import ...
 
+- Importing should now be safe with multiple Py_Initialize/Py_Finalize
+  sequences.
+
 
 What's New in Python 2.0?
 =========================
index 8d06a53adf83288d46aeb06fdf30d70ed5f6c94a..203fe41051f7c573f76fb919d5c96cd81a55ca40 100644 (file)
@@ -1842,7 +1842,6 @@ PyImport_Import(PyObject *module_name)
        static PyObject *silly_list = NULL;
        static PyObject *builtins_str = NULL;
        static PyObject *import_str = NULL;
-       static PyObject *standard_builtins = NULL;
        PyObject *globals = NULL;
        PyObject *import = NULL;
        PyObject *builtins = NULL;
@@ -1873,15 +1872,10 @@ PyImport_Import(PyObject *module_name)
                /* No globals -- use standard builtins, and fake globals */
                PyErr_Clear();
 
-               if (standard_builtins == NULL) {
-                       standard_builtins =
-                               PyImport_ImportModule("__builtin__");
-                       if (standard_builtins == NULL)
-                               return NULL;
-               }
-
-               builtins = standard_builtins;
-               Py_INCREF(builtins);
+               builtins = PyImport_ImportModuleEx("__builtin__",
+                                                  NULL, NULL, NULL);
+               if (builtins == NULL)
+                       return NULL;
                globals = Py_BuildValue("{OO}", builtins_str, builtins);
                if (globals == NULL)
                        goto err;