Message56389
I found a few problems in your patch. In PyCode_New() the type check
for the filename argument is incorrect:
--- Objects/codeobject.c (revision 58412)
+++ Objects/codeobject.c (working copy)
@@ -59,7 +59,7 @@
freevars == NULL || !PyTuple_Check(freevars) ||
cellvars == NULL || !PyTuple_Check(cellvars) ||
name == NULL || (!PyString_Check(name) && !PyUnicode_Check(name)) ||
- filename == NULL || !PyString_Check(filename) ||
+ filename == NULL || (!PyString_Check(name) &&
!PyUnicode_Check(name)) ||
lnotab == NULL || !PyString_Check(lnotab) ||
!PyObject_CheckReadBuffer(code)) {
PyErr_BadInternalCall();
@@ -260,6 +267,8 @@
ourcellvars = PyTuple_New(0);
if (ourcellvars == NULL)
goto cleanup;
+ filename = PyUnicode_DecodeFSDefault(PyString_AS_STRING(filename),
+ 0, NULL);
The following is unnecessary and will cause a reference leak:
@@ -260,6 +267,8 @@
ourcellvars = PyTuple_New(0);
if (ourcellvars == NULL)
goto cleanup;
+ filename = PyUnicode_DecodeFSDefault(PyString_AS_STRING(filename),
+ 0, NULL);
co = (PyObject *)PyCode_New(argcount, kwonlyargcount,
nlocals, stacksize, flags,
I think the interface of PyUnicode_DecodeFSDefault() could be improved
a bit. The function doesn't use the last argument 'errors', so why is
there? I am not sure if it is useful to keep second argument,
'length', either. So, I believe the function prototype should be
changed to:
PyObject *PyUnicode_Decode_FSDefault(const char *s);
Another thing that I am not sure about is whether it is correct to
consider ISO-8859-15 the same thing as Latin-1.
Overall, the patch looks good to me and doesn't cause any test to
fail. I attached an updated patch with the above issues fixed.
Thank you, Christian, for the patch. :) |
|
Date |
User |
Action |
Args |
2007-10-13 22:10:06 | alexandre.vassalotti | set | spambayes_score: 0.00169695 -> 0.0016969516 recipients:
+ alexandre.vassalotti, gvanrossum, christian.heimes |
2007-10-13 22:10:06 | alexandre.vassalotti | set | spambayes_score: 0.00169695 -> 0.00169695 messageid: <1192313406.27.0.0583048162244.issue1272@psf.upfronthosting.co.za> |
2007-10-13 22:10:06 | alexandre.vassalotti | link | issue1272 messages |
2007-10-13 22:10:05 | alexandre.vassalotti | create | |
|