[Python-checkins] r84424 - in python/branches/import_unicode: Include/import.h Modules/signalmodule.c Python/import.c Python/importdl.c Python/pythonrun.c

victor.stinner python-checkins at python.org
Thu Sep 2 00:14:29 CEST 2010


Author: victor.stinner
Date: Thu Sep  2 00:14:29 2010
New Revision: 84424

Log:
Create _PyImport_FindBuiltinExtension() and _PyImport_FixupBuiltinExtension()

 * Remove _PyImport_FindExtension() and _PyImport_FixupExtension()
 * Rename _PyImport_FindExtensionUnicode() to _PyImport_FindExtension()
 * Rename _PyImport_FixupExtensionUnicode() to_PyImport_FixupExtension()

Modified:
   python/branches/import_unicode/Include/import.h
   python/branches/import_unicode/Modules/signalmodule.c
   python/branches/import_unicode/Python/import.c
   python/branches/import_unicode/Python/importdl.c
   python/branches/import_unicode/Python/pythonrun.c

Modified: python/branches/import_unicode/Include/import.h
==============================================================================
--- python/branches/import_unicode/Include/import.h	(original)
+++ python/branches/import_unicode/Include/import.h	Thu Sep  2 00:14:29 2010
@@ -50,10 +50,10 @@
 PyAPI_FUNC(int) _PyImport_IsScript(struct filedescr *);
 PyAPI_FUNC(void) _PyImport_ReInitLock(void);
 
-PyAPI_FUNC(PyObject *)_PyImport_FindExtension(char *, char *);
-PyAPI_FUNC(PyObject *)_PyImport_FindExtensionUnicode(char *, PyObject *);
-PyAPI_FUNC(int)_PyImport_FixupExtension(PyObject*, char *, char *);
-PyAPI_FUNC(int)_PyImport_FixupExtensionUnicode(PyObject*, char *, PyObject *);
+PyAPI_FUNC(PyObject *)_PyImport_FindBuiltinExtension(char *);
+PyAPI_FUNC(PyObject *)_PyImport_FindExtension(char *, PyObject *);
+PyAPI_FUNC(int)_PyImport_FixupBuiltinExtension(PyObject*, char *);
+PyAPI_FUNC(int)_PyImport_FixupExtension(PyObject*, char *, PyObject *);
 
 struct _inittab {
     char *name;

Modified: python/branches/import_unicode/Modules/signalmodule.c
==============================================================================
--- python/branches/import_unicode/Modules/signalmodule.c	(original)
+++ python/branches/import_unicode/Modules/signalmodule.c	Thu Sep  2 00:14:29 2010
@@ -932,7 +932,7 @@
 {
     PyObject *m = PyInit_signal();
     if (m) {
-        _PyImport_FixupExtension(m, "signal", "signal");
+        _PyImport_FixupBuiltinExtension(m, "signal");
         Py_DECREF(m);
     }
 }

Modified: python/branches/import_unicode/Python/import.c
==============================================================================
--- python/branches/import_unicode/Python/import.c	(original)
+++ python/branches/import_unicode/Python/import.c	Thu Sep  2 00:14:29 2010
@@ -585,7 +585,7 @@
 */
 
 int
-_PyImport_FixupExtensionUnicode(PyObject *mod, char *name, PyObject *filename)
+_PyImport_FixupExtension(PyObject *mod, char *name, PyObject *filename)
 {
     PyObject *modules, *dict;
     struct PyModuleDef *def;
@@ -625,32 +625,30 @@
         if (def->m_base.m_copy == NULL)
             return -1;
     }
-    PyDict_SetItem(extensions, filename, (PyObject*)def);
+    if (filename != NULL)
+        PyDict_SetItem(extensions, filename, (PyObject*)def);
+    else
+        PyDict_SetItemString(extensions, name, (PyObject*)def);
     return 0;
 }
 
 int
-_PyImport_FixupExtension(PyObject *mod, char *name, char *filename)
+_PyImport_FixupBuiltinExtension(PyObject *mod, char *name)
 {
-    PyObject *fileobj;
-    int result;
-    fileobj = PyUnicode_FromString(filename);
-    if (fileobj == NULL)
-        return -1;
-    result = _PyImport_FixupExtensionUnicode(mod, name, fileobj);
-    Py_DECREF(fileobj);
-    return result;
+    return _PyImport_FixupExtension(mod, name, NULL);
 }
 
-
 PyObject *
-_PyImport_FindExtensionUnicode(char *name, PyObject *filename)
+_PyImport_FindExtension(char *name, PyObject *filename)
 {
     PyObject *mod, *mdict;
     PyModuleDef* def;
     if (extensions == NULL)
         return NULL;
-    def = (PyModuleDef*)PyDict_GetItem(extensions, filename);
+    if (filename != NULL)
+        def = (PyModuleDef*)PyDict_GetItem(extensions, filename);
+    else
+        def = (PyModuleDef*)PyDict_GetItemString(extensions, name);
     if (def == NULL)
         return NULL;
     if (def->m_size == -1) {
@@ -680,23 +678,22 @@
         Py_DECREF(mod);
         return NULL;
     }
-    if (Py_VerboseFlag)
-        PySys_FormatStderr("import %s # previously loaded (%U)\n",
-                           name, filename);
+    if (Py_VerboseFlag) {
+        if (filename != NULL)
+            PySys_FormatStderr("import %s # previously loaded (%U)\n",
+                               name, filename);
+        else
+            PySys_FormatStderr("import %s\n", name);
+    }
     return mod;
 }
 
 PyObject *
-_PyImport_FindExtension(char *name, char *filename)
+_PyImport_FindBuiltinExtension(char *name)
 {
-    PyObject *fileobj, *mod;
-    fileobj = PyUnicode_DecodeFSDefault(filename);
-    mod = _PyImport_FindExtensionUnicode(name, fileobj);
-    Py_DECREF(fileobj);
-    return mod;
+    return _PyImport_FindExtension(name, NULL);
 }
 
-
 /* Get the module object corresponding to a module name.
    First check the modules dictionary if there's one there,
    if not, create a new one and insert it in the modules dictionary.
@@ -2446,7 +2443,7 @@
     PyObject *path;
 
     path = PyUnicode_FromString(name);
-    if (_PyImport_FindExtensionUnicode(name, path) != NULL) {
+    if (_PyImport_FindExtension(name, path) != NULL) {
         Py_DECREF(path);
         return 1;
     }
@@ -2468,7 +2465,7 @@
                 Py_DECREF(path);
                 return -1;
             }
-            if (_PyImport_FixupExtensionUnicode(mod, name, path) < 0) {
+            if (_PyImport_FixupExtension(mod, name, path) < 0) {
                 Py_DECREF(path);
                 return -1;
             }

Modified: python/branches/import_unicode/Python/importdl.c
==============================================================================
--- python/branches/import_unicode/Python/importdl.c	(original)
+++ python/branches/import_unicode/Python/importdl.c	Thu Sep  2 00:14:29 2010
@@ -28,7 +28,7 @@
     PyObject* (*p)(void);
     struct PyModuleDef *def;
 
-    if ((m = _PyImport_FindExtensionUnicode(name, path)) != NULL) {
+    if ((m = _PyImport_FindExtension(name, path)) != NULL) {
         Py_INCREF(m);
         return m;
     }
@@ -83,7 +83,7 @@
         Py_DECREF(path);
     }
 
-    if (_PyImport_FixupExtensionUnicode(m, name, path) < 0)
+    if (_PyImport_FixupExtension(m, name, path) < 0)
         return NULL;
     if (Py_VerboseFlag)
         PySys_FormatStderr(

Modified: python/branches/import_unicode/Python/pythonrun.c
==============================================================================
--- python/branches/import_unicode/Python/pythonrun.c	(original)
+++ python/branches/import_unicode/Python/pythonrun.c	Thu Sep  2 00:14:29 2010
@@ -240,7 +240,7 @@
     bimod = _PyBuiltin_Init();
     if (bimod == NULL)
         Py_FatalError("Py_Initialize: can't initialize builtins modules");
-    _PyImport_FixupExtension(bimod, "builtins", "builtins");
+    _PyImport_FixupBuiltinExtension(bimod, "builtins");
     interp->builtins = PyModule_GetDict(bimod);
     if (interp->builtins == NULL)
         Py_FatalError("Py_Initialize: can't initialize builtins dict");
@@ -256,7 +256,7 @@
     if (interp->sysdict == NULL)
         Py_FatalError("Py_Initialize: can't initialize sys dict");
     Py_INCREF(interp->sysdict);
-    _PyImport_FixupExtension(sysmod, "sys", "sys");
+    _PyImport_FixupBuiltinExtension(sysmod, "sys");
     PySys_SetPath(Py_GetPath());
     PyDict_SetItemString(interp->sysdict, "modules",
                          interp->modules);
@@ -557,7 +557,7 @@
     interp->modules = PyDict_New();
     interp->modules_reloading = PyDict_New();
 
-    bimod = _PyImport_FindExtension("builtins", "builtins");
+    bimod = _PyImport_FindBuiltinExtension("builtins");
     if (bimod != NULL) {
         interp->builtins = PyModule_GetDict(bimod);
         if (interp->builtins == NULL)
@@ -568,7 +568,7 @@
     /* initialize builtin exceptions */
     _PyExc_Init();
 
-    sysmod = _PyImport_FindExtension("sys", "sys");
+    sysmod = _PyImport_FindBuiltinExtension("sys");
     if (bimod != NULL && sysmod != NULL) {
         PyObject *pstderr;
         interp->sysdict = PyModule_GetDict(sysmod);


More information about the Python-checkins mailing list