diff options
author | Victor Stinner <victor.stinner@haypocalc.com> | 2011-09-28 22:15:37 +0200 |
---|---|---|
committer | Victor Stinner <victor.stinner@haypocalc.com> | 2011-09-28 22:15:37 +0200 |
commit | 17222160e7957935c00b5cf845888493b6350b58 (patch) | |
tree | 1b4c13f44aa067f55197a6167d370b2568202635 /Objects/unicodeobject.c | |
parent | fd85c3aa8dbbdd3193a41b73ad591d03a1258358 (diff) | |
download | cpython-git-17222160e7957935c00b5cf845888493b6350b58.tar.gz |
Mark _PyUnicode_FindMaxCharAndNumSurrogatePairs() as private
Diffstat (limited to 'Objects/unicodeobject.c')
-rw-r--r-- | Objects/unicodeobject.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index ff3d4b6e0a..69f0b8fce9 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -708,11 +708,14 @@ PyUnicode_CopyCharacters(PyObject *to, Py_ssize_t to_start, return -1; } -int -_PyUnicode_FindMaxCharAndNumSurrogatePairs(const wchar_t *begin, - const wchar_t *end, - Py_UCS4 *maxchar, - Py_ssize_t *num_surrogates) +/* Find the maximum code point and count the number of surrogate pairs so a + correct string length can be computed before converting a string to UCS4. + This function counts single surrogates as a character and not as a pair. + + Return 0 on success, or -1 on error. */ +static int +find_maxchar_surrogates(const wchar_t *begin, const wchar_t *end, + Py_UCS4 *maxchar, Py_ssize_t *num_surrogates) { const wchar_t *iter; @@ -789,7 +792,7 @@ _PyUnicode_Ready(PyUnicodeObject *unicode) #endif end = _PyUnicode_WSTR(unicode) + _PyUnicode_WSTR_LENGTH(unicode); - if (_PyUnicode_FindMaxCharAndNumSurrogatePairs(_PyUnicode_WSTR(unicode), end, + if (find_maxchar_surrogates(_PyUnicode_WSTR(unicode), end, &maxchar, &num_surrogates) == -1) { assert(0 && "PyUnicode_FindMaxCharAndNumSurrogatePairs failed"); @@ -1022,7 +1025,7 @@ PyUnicode_FromUnicode(const Py_UNICODE *u, Py_ssize_t size) /* If not empty and not single character, copy the Unicode data into the new object */ - if (_PyUnicode_FindMaxCharAndNumSurrogatePairs(u, u + size, &maxchar, + if (find_maxchar_surrogates(u, u + size, &maxchar, &num_surrogates) == -1) return NULL; |