Commit 9e9d689d authored by Victor Stinner's avatar Victor Stinner

PyUnicode_New() sets utf8_length to zero for latin1

parent 01698045
...@@ -755,7 +755,7 @@ PyUnicode_New(Py_ssize_t size, Py_UCS4 maxchar) ...@@ -755,7 +755,7 @@ PyUnicode_New(Py_ssize_t size, Py_UCS4 maxchar)
PyCompactUnicodeObject *unicode; PyCompactUnicodeObject *unicode;
void *data; void *data;
int kind_state; int kind_state;
int is_sharing = 0, is_ascii = 0; int is_sharing, is_ascii;
Py_ssize_t char_size; Py_ssize_t char_size;
Py_ssize_t struct_size; Py_ssize_t struct_size;
...@@ -769,6 +769,8 @@ PyUnicode_New(Py_ssize_t size, Py_UCS4 maxchar) ...@@ -769,6 +769,8 @@ PyUnicode_New(Py_ssize_t size, Py_UCS4 maxchar)
++unicode_new_new_calls; ++unicode_new_new_calls;
#endif #endif
is_ascii = 0;
is_sharing = 0;
struct_size = sizeof(PyCompactUnicodeObject); struct_size = sizeof(PyCompactUnicodeObject);
if (maxchar < 128) { if (maxchar < 128) {
kind_state = PyUnicode_1BYTE_KIND; kind_state = PyUnicode_1BYTE_KIND;
...@@ -833,11 +835,12 @@ PyUnicode_New(Py_ssize_t size, Py_UCS4 maxchar) ...@@ -833,11 +835,12 @@ PyUnicode_New(Py_ssize_t size, Py_UCS4 maxchar)
((char*)data)[size] = 0; ((char*)data)[size] = 0;
_PyUnicode_WSTR(unicode) = NULL; _PyUnicode_WSTR(unicode) = NULL;
_PyUnicode_WSTR_LENGTH(unicode) = 0; _PyUnicode_WSTR_LENGTH(unicode) = 0;
unicode->utf8_length = 0;
unicode->utf8 = NULL; unicode->utf8 = NULL;
unicode->utf8_length = 0;
} }
else { else {
unicode->utf8 = NULL; unicode->utf8 = NULL;
unicode->utf8_length = 0;
if (kind_state == PyUnicode_2BYTE_KIND) if (kind_state == PyUnicode_2BYTE_KIND)
((Py_UCS2*)data)[size] = 0; ((Py_UCS2*)data)[size] = 0;
else /* kind_state == PyUnicode_4BYTE_KIND */ else /* kind_state == PyUnicode_4BYTE_KIND */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment