This is the uncontroversial half of patch 1263 by Thomas Lee:

changes to codecs.c and structmember.c to use PyUnicode instead of
PyString.
This commit is contained in:
Guido van Rossum 2007-10-19 21:48:41 +00:00
parent 630e46424a
commit 21431e85d5
2 changed files with 17 additions and 13 deletions

View file

@ -51,13 +51,13 @@ PyMember_GetOne(const char *addr, PyMemberDef *l)
v = Py_None;
}
else
v = PyString_FromString(*(char**)addr);
v = PyUnicode_FromString(*(char**)addr);
break;
case T_STRING_INPLACE:
v = PyString_FromString((char*)addr);
v = PyUnicode_FromString((char*)addr);
break;
case T_CHAR:
v = PyString_FromStringAndSize((char*)addr, 1);
v = PyUnicode_FromStringAndSize((char*)addr, 1);
break;
case T_OBJECT:
v = *(PyObject **)addr;
@ -225,8 +225,8 @@ PyMember_SetOne(char *addr, PyMemberDef *l, PyObject *v)
Py_XDECREF(oldv);
break;
case T_CHAR:
if (PyString_Check(v) && PyString_Size(v) == 1) {
*(char*)addr = PyString_AsString(v)[0];
if (PyUnicode_Check(v) && PyUnicode_GetSize(v) == 1) {
*(char*)addr = PyUnicode_AsString(v)[0];
}
else {
PyErr_BadArgument();