From: Benjamin Peterson Date: Wed, 23 Nov 2011 01:05:49 +0000 (-0600) Subject: cave to those who like readable code X-Git-Tag: v3.3.0a1~743 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5944c369314a4e57e997eb855f45ccde96e37db7;p=python cave to those who like readable code --- diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index a7d9e1224c..ab59e21549 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -6164,7 +6164,21 @@ PyUnicode_AsRawUnicodeEscapeString(PyObject *unicode) kind = PyUnicode_KIND(unicode); data = PyUnicode_DATA(unicode); len = PyUnicode_GET_LENGTH(unicode); - expandsize = kind * 2 + 2; + expandsize = 0; + switch (kind) { + case PyUnicode_1BYTE_KIND: + expandsize = 4; + break; + case PyUnicode_2BYTE_KIND: + expandsize = 6; + break; + case PyUnicode_4BYTE_KIND: + expandsize = 10; + break; + default: + assert(0); + break; + } if (len > PY_SSIZE_T_MAX / expandsize) return PyErr_NoMemory();