summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@haypocalc.com>2011-10-04 01:02:02 +0200
committerVictor Stinner <victor.stinner@haypocalc.com>2011-10-04 01:02:02 +0200
commit9e9d689d85e60193494603e65bdbac7717187058 (patch)
treee2ef6be384b2a4ae74a5cff914c88604f81dfd29
parent016980454ea88bcac5f1cea246cb8a5c0e55dc5a (diff)
downloadcpython-git-9e9d689d85e60193494603e65bdbac7717187058.tar.gz
PyUnicode_New() sets utf8_length to zero for latin1
-rw-r--r--Objects/unicodeobject.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index cad9bfe85f..87d661e8be 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -755,7 +755,7 @@ PyUnicode_New(Py_ssize_t size, Py_UCS4 maxchar)
PyCompactUnicodeObject *unicode;
void *data;
int kind_state;
- int is_sharing = 0, is_ascii = 0;
+ int is_sharing, is_ascii;
Py_ssize_t char_size;
Py_ssize_t struct_size;
@@ -769,6 +769,8 @@ PyUnicode_New(Py_ssize_t size, Py_UCS4 maxchar)
++unicode_new_new_calls;
#endif
+ is_ascii = 0;
+ is_sharing = 0;
struct_size = sizeof(PyCompactUnicodeObject);
if (maxchar < 128) {
kind_state = PyUnicode_1BYTE_KIND;
@@ -833,11 +835,12 @@ PyUnicode_New(Py_ssize_t size, Py_UCS4 maxchar)
((char*)data)[size] = 0;
_PyUnicode_WSTR(unicode) = NULL;
_PyUnicode_WSTR_LENGTH(unicode) = 0;
- unicode->utf8_length = 0;
unicode->utf8 = NULL;
+ unicode->utf8_length = 0;
}
else {
unicode->utf8 = NULL;
+ unicode->utf8_length = 0;
if (kind_state == PyUnicode_2BYTE_KIND)
((Py_UCS2*)data)[size] = 0;
else /* kind_state == PyUnicode_4BYTE_KIND */