summaryrefslogtreecommitdiffstats
path: root/Modules/symtablemodule.c
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2013-08-26 20:28:21 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2013-08-26 20:28:21 (GMT)
commit14e461d5b92000ec4e89182fa25ab0d5b5b31234 (patch)
tree21e37d8661cbe50e7ddbedc1b35a486adc1eae87 /Modules/symtablemodule.c
parent33824f6fd70f89dd39fcb7ed1651e8097c57d340 (diff)
downloadcpython-14e461d5b92000ec4e89182fa25ab0d5b5b31234.zip
cpython-14e461d5b92000ec4e89182fa25ab0d5b5b31234.tar.gz
cpython-14e461d5b92000ec4e89182fa25ab0d5b5b31234.tar.bz2
Close #11619: The parser and the import machinery do not encode Unicode
filenames anymore on Windows.
Diffstat (limited to 'Modules/symtablemodule.c')
-rw-r--r--Modules/symtablemodule.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/Modules/symtablemodule.c b/Modules/symtablemodule.c
index fbc1ff6..036fdb9 100644
--- a/Modules/symtablemodule.c
+++ b/Modules/symtablemodule.c
@@ -11,12 +11,12 @@ symtable_symtable(PyObject *self, PyObject *args)
PyObject *t;
char *str;
- char *filename;
+ PyObject *filename;
char *startstr;
int start;
- if (!PyArg_ParseTuple(args, "sss:symtable", &str, &filename,
- &startstr))
+ if (!PyArg_ParseTuple(args, "sO&s:symtable",
+ &str, PyUnicode_FSDecoder, &filename, &startstr))
return NULL;
if (strcmp(startstr, "exec") == 0)
start = Py_file_input;
@@ -27,9 +27,11 @@ symtable_symtable(PyObject *self, PyObject *args)
else {
PyErr_SetString(PyExc_ValueError,
"symtable() arg 3 must be 'exec' or 'eval' or 'single'");
+ Py_DECREF(filename);
return NULL;
}
- st = Py_SymtableString(str, filename, start);
+ st = Py_SymtableStringObject(str, filename, start);
+ Py_DECREF(filename);
if (st == NULL)
return NULL;
t = st->st_blocks;