From 1518e8713d1e372284c653f254fb29cecc66d764 Mon Sep 17 00:00:00 2001 From: Benjamin Peterson Date: Wed, 23 Nov 2011 10:44:52 -0600 Subject: [PATCH] and back to the "magic" formula (with a comment) it is --- Objects/unicodeobject.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index ab59e215491..2fefdbe1709 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -6164,21 +6164,9 @@ PyUnicode_AsRawUnicodeEscapeString(PyObject *unicode) kind = PyUnicode_KIND(unicode); data = PyUnicode_DATA(unicode); len = PyUnicode_GET_LENGTH(unicode); - 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; - } + /* 4 byte characters can take up 10 bytes, 2 byte characters can take up 6 + bytes, and 1 byte characters 4. */ + expandsize = kind * 2 + 2; if (len > PY_SSIZE_T_MAX / expandsize) return PyErr_NoMemory();