From: Walter Dörwald Date: Sat, 5 May 2007 14:43:36 +0000 (+0000) Subject: Change PyUnicode_EncodeUTF7() to return a bytes object. X-Git-Tag: v3.0a1~1007 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=51ab4146275d9178a871317413f998aede952b7d;p=python Change PyUnicode_EncodeUTF7() to return a bytes object. --- diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index aed07ee2b8..af98a90efb 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -1149,13 +1149,13 @@ PyObject *PyUnicode_EncodeUTF7(const Py_UNICODE *s, char * start; if (size == 0) - return PyString_FromStringAndSize(NULL, 0); + return PyBytes_FromStringAndSize(NULL, 0); - v = PyString_FromStringAndSize(NULL, cbAllocated); + v = PyBytes_FromStringAndSize(NULL, cbAllocated); if (v == NULL) return NULL; - start = out = PyString_AS_STRING(v); + start = out = PyBytes_AS_STRING(v); for (;i < size; ++i) { Py_UNICODE ch = s[i]; @@ -1221,7 +1221,10 @@ PyObject *PyUnicode_EncodeUTF7(const Py_UNICODE *s, *out++ = '-'; } - _PyString_Resize(&v, out - start); + if (PyBytes_Resize(v, out - start)) { + Py_DECREF(v); + return NULL; + } return v; }