diff options
| author | Christian Heimes <christian@cheimes.de> | 2013-10-29 21:16:58 +0100 |
|---|---|---|
| committer | Christian Heimes <christian@cheimes.de> | 2013-10-29 21:16:58 +0100 |
| commit | dc6b933d2333e3928c73554a3dcf171ab4611b7d (patch) | |
| tree | b80503e4710d4c3cafad950d900cd34c8654c91e /Objects | |
| parent | ee0bac66b2f388e2d685fa5eee2f7a4ea3910186 (diff) | |
| parent | 34f7383d7ae1d3d040b3978680b9498c4ed150f5 (diff) | |
| download | cpython-git-dc6b933d2333e3928c73554a3dcf171ab4611b7d.tar.gz | |
merge
Diffstat (limited to 'Objects')
| -rw-r--r-- | Objects/abstract.c | 2 | ||||
| -rw-r--r-- | Objects/unicodeobject.c | 25 |
2 files changed, 16 insertions, 11 deletions
diff --git a/Objects/abstract.c b/Objects/abstract.c index 6c7a6cd226..91df5da655 100644 --- a/Objects/abstract.c +++ b/Objects/abstract.c @@ -2144,6 +2144,8 @@ PyObject_CallFunction(PyObject *callable, const char *format, ...) } else args = PyTuple_New(0); + if (args == NULL) + return NULL; return call_function_tail(callable, args); } diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index a7ea9c8597..208e5e3db3 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -896,6 +896,19 @@ _PyUnicode_New(Py_ssize_t length) if (unicode == NULL) return NULL; new_size = sizeof(Py_UNICODE) * ((size_t)length + 1); + + _PyUnicode_WSTR_LENGTH(unicode) = length; + _PyUnicode_HASH(unicode) = -1; + _PyUnicode_STATE(unicode).interned = 0; + _PyUnicode_STATE(unicode).kind = 0; + _PyUnicode_STATE(unicode).compact = 0; + _PyUnicode_STATE(unicode).ready = 0; + _PyUnicode_STATE(unicode).ascii = 0; + _PyUnicode_DATA_ANY(unicode) = NULL; + _PyUnicode_LENGTH(unicode) = 0; + _PyUnicode_UTF8(unicode) = NULL; + _PyUnicode_UTF8_LENGTH(unicode) = 0; + _PyUnicode_WSTR(unicode) = (Py_UNICODE*) PyObject_MALLOC(new_size); if (!_PyUnicode_WSTR(unicode)) { Py_DECREF(unicode); @@ -912,17 +925,7 @@ _PyUnicode_New(Py_ssize_t length) */ _PyUnicode_WSTR(unicode)[0] = 0; _PyUnicode_WSTR(unicode)[length] = 0; - _PyUnicode_WSTR_LENGTH(unicode) = length; - _PyUnicode_HASH(unicode) = -1; - _PyUnicode_STATE(unicode).interned = 0; - _PyUnicode_STATE(unicode).kind = 0; - _PyUnicode_STATE(unicode).compact = 0; - _PyUnicode_STATE(unicode).ready = 0; - _PyUnicode_STATE(unicode).ascii = 0; - _PyUnicode_DATA_ANY(unicode) = NULL; - _PyUnicode_LENGTH(unicode) = 0; - _PyUnicode_UTF8(unicode) = NULL; - _PyUnicode_UTF8_LENGTH(unicode) = 0; + assert(_PyUnicode_CheckConsistency((PyObject *)unicode, 0)); return unicode; } |
