diff options
-rw-r--r-- | Modules/_elementtree.c | 2 | ||||
-rw-r--r-- | Modules/posixmodule.c | 11 | ||||
-rw-r--r-- | Objects/namespaceobject.c | 2 |
3 files changed, 7 insertions, 8 deletions
diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c index cb7069d..797e357 100644 --- a/Modules/_elementtree.c +++ b/Modules/_elementtree.c @@ -3461,7 +3461,7 @@ xmlparser_parse_whole(XMLParserObject* self, PyObject* args) if (PyUnicode_CheckExact(buffer)) { /* A unicode object is encoded into bytes using UTF-8 */ - if (PyUnicode_GET_SIZE(buffer) == 0) { + if (PyUnicode_GET_LENGTH(buffer) == 0) { Py_DECREF(buffer); break; } diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index f282f99..5e5f355 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -829,15 +829,14 @@ path_converter(PyObject *o, void *p) { if (unicode) { #ifdef MS_WINDOWS wchar_t *wide; - length = PyUnicode_GET_SIZE(unicode); - if (length > 32767) { - FORMAT_EXCEPTION(PyExc_ValueError, "%s too long for Windows"); + + wide = PyUnicode_AsUnicodeAndSize(unicode, &length); + if (!wide) { Py_DECREF(unicode); return 0; } - - wide = PyUnicode_AsUnicode(unicode); - if (!wide) { + if (length > 32767) { + FORMAT_EXCEPTION(PyExc_ValueError, "%s too long for Windows"); Py_DECREF(unicode); return 0; } diff --git a/Objects/namespaceobject.c b/Objects/namespaceobject.c index 9e95094..720ac0d 100644 --- a/Objects/namespaceobject.c +++ b/Objects/namespaceobject.c @@ -101,7 +101,7 @@ namespace_repr(PyObject *ns) goto error; while ((key = PyIter_Next(keys_iter)) != NULL) { - if (PyUnicode_Check(key) && PyUnicode_GET_SIZE(key) > 0) { + if (PyUnicode_Check(key) && PyUnicode_GET_LENGTH(key) > 0) { PyObject *value, *item; value = PyDict_GetItem(d, key); |