[Python-checkins] r82908 - python/branches/import_unicode/Modules/zipimport.c
victor.stinner
python-checkins at python.org
Wed Jul 14 22:38:26 CEST 2010
Author: victor.stinner
Date: Wed Jul 14 22:38:26 2010
New Revision: 82908
Log:
get_code_from_data() uses PyUnicode_EncodeFSDefault()
Modified:
python/branches/import_unicode/Modules/zipimport.c
Modified: python/branches/import_unicode/Modules/zipimport.c
==============================================================================
--- python/branches/import_unicode/Modules/zipimport.c (original)
+++ python/branches/import_unicode/Modules/zipimport.c Wed Jul 14 22:38:26 2010
@@ -1107,20 +1107,23 @@
time_t mtime, PyObject *toc_entry)
{
PyObject *data, *code;
+ PyObject *modpath_bytes;
char *modpath;
data = get_data(self->archive, toc_entry);
if (data == NULL)
return NULL;
- modpath = _PyUnicode_AsString(PyTuple_GetItem(toc_entry, 0));
+ modpath_bytes = PyUnicode_EncodeFSDefault(PyTuple_GetItem(toc_entry, 0));
+ if (modpath_bytes == NULL)
+ return NULL;
+ modpath = PyBytes_AS_STRING(modpath_bytes);
- if (isbytecode) {
+ if (isbytecode)
code = unmarshal_code(modpath, data, mtime);
- }
- else {
+ else
code = compile_source(modpath, data);
- }
+ Py_DECREF(modpath_bytes);
Py_DECREF(data);
return code;
}
More information about the Python-checkins
mailing list