mirror of
https://github.com/python/cpython.git
synced 2025-09-06 17:02:26 +00:00
Issue #3080: Import builtins using Unicode strings
- is_builtin(), init_builtin(), load_builtin() and other builtin related functions use Unicode strings, instead of byte strings - Rename _PyImport_FixupExtensionUnicode() to _PyImport_FixupExtensionObject() - Rename _PyImport_FindExtensionUnicode() to _PyImport_FindExtensionObject()
This commit is contained in:
parent
53dc735168
commit
9587286f98
3 changed files with 80 additions and 60 deletions
|
@ -26,17 +26,23 @@ _PyImport_LoadDynamicModule(char *name, char *pathname, FILE *fp)
|
|||
dl_funcptr p0;
|
||||
PyObject* (*p)(void);
|
||||
struct PyModuleDef *def;
|
||||
PyObject *result;
|
||||
PyObject *nameobj, *result;
|
||||
|
||||
path = PyUnicode_DecodeFSDefault(pathname);
|
||||
if (path == NULL)
|
||||
return NULL;
|
||||
|
||||
if ((m = _PyImport_FindExtensionUnicode(name, path)) != NULL) {
|
||||
nameobj = PyUnicode_FromString(name);
|
||||
if (nameobj == NULL)
|
||||
return NULL;
|
||||
m = _PyImport_FindExtensionObject(nameobj, path);
|
||||
if (m != NULL) {
|
||||
Py_DECREF(nameobj);
|
||||
Py_INCREF(m);
|
||||
result = m;
|
||||
goto finally;
|
||||
}
|
||||
Py_DECREF(nameobj);
|
||||
lastdot = strrchr(name, '.');
|
||||
if (lastdot == NULL) {
|
||||
packagecontext = NULL;
|
||||
|
@ -82,12 +88,18 @@ _PyImport_LoadDynamicModule(char *name, char *pathname, FILE *fp)
|
|||
else
|
||||
Py_INCREF(path);
|
||||
|
||||
if (_PyImport_FixupExtensionUnicode(m, name, path) < 0)
|
||||
nameobj = PyUnicode_FromString(name);
|
||||
if (nameobj == NULL)
|
||||
return NULL;
|
||||
if (_PyImport_FixupExtensionObject(m, nameobj, path) < 0) {
|
||||
Py_DECREF(nameobj);
|
||||
goto error;
|
||||
}
|
||||
if (Py_VerboseFlag)
|
||||
PySys_WriteStderr(
|
||||
"import %s # dynamically loaded from %s\n",
|
||||
name, pathname);
|
||||
PySys_FormatStderr(
|
||||
"import %U # dynamically loaded from %s\n",
|
||||
nameobj, pathname);
|
||||
Py_DECREF(nameobj);
|
||||
result = m;
|
||||
goto finally;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue