summaryrefslogtreecommitdiff
path: root/Objects
diff options
context:
space:
mode:
authorChristian Heimes <christian@cheimes.de>2013-10-29 21:16:58 +0100
committerChristian Heimes <christian@cheimes.de>2013-10-29 21:16:58 +0100
commitdc6b933d2333e3928c73554a3dcf171ab4611b7d (patch)
treeb80503e4710d4c3cafad950d900cd34c8654c91e /Objects
parentee0bac66b2f388e2d685fa5eee2f7a4ea3910186 (diff)
parent34f7383d7ae1d3d040b3978680b9498c4ed150f5 (diff)
downloadcpython-git-dc6b933d2333e3928c73554a3dcf171ab4611b7d.tar.gz
merge
Diffstat (limited to 'Objects')
-rw-r--r--Objects/abstract.c2
-rw-r--r--Objects/unicodeobject.c25
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;
}