diff options
author | Victor Stinner <victor.stinner@haypocalc.com> | 2011-10-23 18:10:08 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@haypocalc.com> | 2011-10-23 18:10:08 (GMT) |
commit | 57ffa9d4ffcb4af84a6367a0a259b67333b33952 (patch) | |
tree | 2f97b139d4dcb1d294474d83c7a4214dc6242799 /Objects | |
parent | af9e4b8c29f152166a7dce34b8633d45e719442b (diff) | |
download | cpython-57ffa9d4ffcb4af84a6367a0a259b67333b33952.zip cpython-57ffa9d4ffcb4af84a6367a0a259b67333b33952.tar.gz cpython-57ffa9d4ffcb4af84a6367a0a259b67333b33952.tar.bz2 |
PyUnicode_AsUnicodeCopy() uses PyUnicode_AsUnicodeAndSize() to get directly the length
Diffstat (limited to 'Objects')
-rw-r--r-- | Objects/unicodeobject.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index aedcec5..6c73779 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -14210,21 +14210,21 @@ Py_UNICODE* PyUnicode_AsUnicodeCopy(PyObject *unicode) { Py_UNICODE *u, *copy; - Py_ssize_t size; + Py_ssize_t len, size; if (!PyUnicode_Check(unicode)) { PyErr_BadArgument(); return NULL; } - u = PyUnicode_AsUnicode(unicode); + u = PyUnicode_AsUnicodeAndSize(unicode, &len); if (u == NULL) return NULL; /* Ensure we won't overflow the size. */ - if (PyUnicode_GET_SIZE(unicode) > ((PY_SSIZE_T_MAX / sizeof(Py_UNICODE)) - 1)) { + if (len > ((PY_SSIZE_T_MAX / sizeof(Py_UNICODE)) - 1)) { PyErr_NoMemory(); return NULL; } - size = PyUnicode_GET_SIZE(unicode) + 1; /* copy the nul character */ + size = len + 1; /* copy the null character */ size *= sizeof(Py_UNICODE); copy = PyMem_Malloc(size); if (copy == NULL) { |