From 567b94adaaceb622c33f9be1998735dfb95f1707 Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Sun, 9 May 2010 15:52:27 +0000 Subject: Recorded merge of revisions 81029 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r81029 | antoine.pitrou | 2010-05-09 16:46:46 +0200 (dim., 09 mai 2010) | 3 lines Untabify C files. Will watch buildbots. ........ --- Python/importdl.c | 116 +++++++++++++++++++++++++++--------------------------- 1 file changed, 58 insertions(+), 58 deletions(-) (limited to 'Python/importdl.c') diff --git a/Python/importdl.c b/Python/importdl.c index d214ba1bb8..507222b0c2 100644 --- a/Python/importdl.c +++ b/Python/importdl.c @@ -13,76 +13,76 @@ #include "importdl.h" extern dl_funcptr _PyImport_GetDynLoadFunc(const char *name, - const char *shortname, - const char *pathname, FILE *fp); + const char *shortname, + const char *pathname, FILE *fp); PyObject * _PyImport_LoadDynamicModule(char *name, char *pathname, FILE *fp) { - PyObject *m; - PyObject *path; - char *lastdot, *shortname, *packagecontext, *oldcontext; - dl_funcptr p0; - PyObject* (*p)(void); - struct PyModuleDef *def; + PyObject *m; + PyObject *path; + char *lastdot, *shortname, *packagecontext, *oldcontext; + dl_funcptr p0; + PyObject* (*p)(void); + struct PyModuleDef *def; - if ((m = _PyImport_FindExtension(name, pathname)) != NULL) { - Py_INCREF(m); - return m; - } - lastdot = strrchr(name, '.'); - if (lastdot == NULL) { - packagecontext = NULL; - shortname = name; - } - else { - packagecontext = name; - shortname = lastdot+1; - } + if ((m = _PyImport_FindExtension(name, pathname)) != NULL) { + Py_INCREF(m); + return m; + } + lastdot = strrchr(name, '.'); + if (lastdot == NULL) { + packagecontext = NULL; + shortname = name; + } + else { + packagecontext = name; + shortname = lastdot+1; + } - p0 = _PyImport_GetDynLoadFunc(name, shortname, pathname, fp); - p = (PyObject*(*)(void))p0; - if (PyErr_Occurred()) - return NULL; - if (p == NULL) { - PyErr_Format(PyExc_ImportError, - "dynamic module does not define init function (PyInit_%.200s)", - shortname); - return NULL; - } - oldcontext = _Py_PackageContext; - _Py_PackageContext = packagecontext; - m = (*p)(); - _Py_PackageContext = oldcontext; - if (m == NULL) - return NULL; + p0 = _PyImport_GetDynLoadFunc(name, shortname, pathname, fp); + p = (PyObject*(*)(void))p0; + if (PyErr_Occurred()) + return NULL; + if (p == NULL) { + PyErr_Format(PyExc_ImportError, + "dynamic module does not define init function (PyInit_%.200s)", + shortname); + return NULL; + } + oldcontext = _Py_PackageContext; + _Py_PackageContext = packagecontext; + m = (*p)(); + _Py_PackageContext = oldcontext; + if (m == NULL) + return NULL; - if (PyErr_Occurred()) { - Py_DECREF(m); - PyErr_Format(PyExc_SystemError, - "initialization of %s raised unreported exception", - shortname); - return NULL; - } + if (PyErr_Occurred()) { + Py_DECREF(m); + PyErr_Format(PyExc_SystemError, + "initialization of %s raised unreported exception", + shortname); + return NULL; + } - /* Remember pointer to module init function. */ - def = PyModule_GetDef(m); - def->m_base.m_init = p; + /* Remember pointer to module init function. */ + def = PyModule_GetDef(m); + def->m_base.m_init = p; - /* Remember the filename as the __file__ attribute */ - path = PyUnicode_DecodeFSDefault(pathname); - if (PyModule_AddObject(m, "__file__", path) < 0) - PyErr_Clear(); /* Not important enough to report */ + /* Remember the filename as the __file__ attribute */ + path = PyUnicode_DecodeFSDefault(pathname); + if (PyModule_AddObject(m, "__file__", path) < 0) + PyErr_Clear(); /* Not important enough to report */ - if (_PyImport_FixupExtension(m, name, pathname) < 0) - return NULL; - if (Py_VerboseFlag) - PySys_WriteStderr( - "import %s # dynamically loaded from %s\n", - name, pathname); - return m; + if (_PyImport_FixupExtension(m, name, pathname) < 0) + return NULL; + if (Py_VerboseFlag) + PySys_WriteStderr( + "import %s # dynamically loaded from %s\n", + name, pathname); + return m; } #endif /* HAVE_DYNAMIC_LOADING */ -- cgit v1.2.1 From fd287a210024b8e10ed205fba01ece1fbcabc5ef Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Sun, 17 Oct 2010 01:24:53 +0000 Subject: _PyImport_FixupExtension() and _PyImport_FindExtension() uses FS encoding * Rename _PyImport_FindExtension() to _PyImport_FindExtensionUnicode(): the filename becomes a Unicode object instead of byte string * Rename _PyImport_FixupExtension() to _PyImport_FixupExtensionUnicode(): the filename becomes a Unicode object instead of byte string --- Python/importdl.c | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) (limited to 'Python/importdl.c') diff --git a/Python/importdl.c b/Python/importdl.c index 507222b0c2..9caed453aa 100644 --- a/Python/importdl.c +++ b/Python/importdl.c @@ -27,10 +27,16 @@ _PyImport_LoadDynamicModule(char *name, char *pathname, FILE *fp) dl_funcptr p0; PyObject* (*p)(void); struct PyModuleDef *def; + PyObject *result; - if ((m = _PyImport_FindExtension(name, pathname)) != NULL) { + path = PyUnicode_DecodeFSDefault(pathname); + if (path == NULL) + return NULL; + + if ((m = _PyImport_FindExtensionUnicode(name, path)) != NULL) { Py_INCREF(m); - return m; + result = m; + goto finally; } lastdot = strrchr(name, '.'); if (lastdot == NULL) { @@ -45,26 +51,26 @@ _PyImport_LoadDynamicModule(char *name, char *pathname, FILE *fp) p0 = _PyImport_GetDynLoadFunc(name, shortname, pathname, fp); p = (PyObject*(*)(void))p0; if (PyErr_Occurred()) - return NULL; + goto error; if (p == NULL) { PyErr_Format(PyExc_ImportError, "dynamic module does not define init function (PyInit_%.200s)", shortname); - return NULL; + goto error; } oldcontext = _Py_PackageContext; _Py_PackageContext = packagecontext; m = (*p)(); _Py_PackageContext = oldcontext; if (m == NULL) - return NULL; + goto error; if (PyErr_Occurred()) { Py_DECREF(m); PyErr_Format(PyExc_SystemError, "initialization of %s raised unreported exception", shortname); - return NULL; + goto error; } /* Remember pointer to module init function. */ @@ -72,17 +78,25 @@ _PyImport_LoadDynamicModule(char *name, char *pathname, FILE *fp) def->m_base.m_init = p; /* Remember the filename as the __file__ attribute */ - path = PyUnicode_DecodeFSDefault(pathname); if (PyModule_AddObject(m, "__file__", path) < 0) PyErr_Clear(); /* Not important enough to report */ + else + Py_INCREF(path); - if (_PyImport_FixupExtension(m, name, pathname) < 0) - return NULL; + if (_PyImport_FixupExtensionUnicode(m, name, path) < 0) + goto error; if (Py_VerboseFlag) PySys_WriteStderr( "import %s # dynamically loaded from %s\n", name, pathname); - return m; + result = m; + goto finally; + +error: + result = NULL; +finally: + Py_DECREF(path); + return result; } #endif /* HAVE_DYNAMIC_LOADING */ -- cgit v1.2.1