diff options
author | Victor Stinner <victor.stinner@haypocalc.com> | 2011-10-03 02:01:52 +0200 |
---|---|---|
committer | Victor Stinner <victor.stinner@haypocalc.com> | 2011-10-03 02:01:52 +0200 |
commit | 4fae54cb0ee1f8b9959025fd3e75795e4c634a0f (patch) | |
tree | 4a8814cd491ee50ea350d756e2bce42b07e67d11 /Objects/unicodeobject.c | |
parent | 23e56682142e0c7bd805bbc736e6ac22acf38550 (diff) | |
download | cpython-git-4fae54cb0ee1f8b9959025fd3e75795e4c634a0f.tar.gz |
In release mode, PyUnicode_InternInPlace() does nothing if the input is NULL or
not a unicode, instead of failing with a fatal error.
Use assertions in debug mode (provide better error messages).
Diffstat (limited to 'Objects/unicodeobject.c')
-rw-r--r-- | Objects/unicodeobject.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 3eec75aae0..29788b3c41 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -12893,9 +12893,13 @@ PyUnicode_InternInPlace(PyObject **p) { register PyUnicodeObject *s = (PyUnicodeObject *)(*p); PyObject *t; +#ifdef Py_DEBUG + assert(s != NULL); + assert(_PyUnicode_CHECK(s)); +#else if (s == NULL || !PyUnicode_Check(s)) - Py_FatalError( - "PyUnicode_InternInPlace: unicode strings only please!"); + return; +#endif /* If it's a subclass, we don't really know what putting it in the interned dict might do. */ if (!PyUnicode_CheckExact(s)) @@ -12903,7 +12907,7 @@ PyUnicode_InternInPlace(PyObject **p) if (PyUnicode_CHECK_INTERNED(s)) return; if (PyUnicode_READY(s) == -1) { - assert(0 && "ready fail in intern..."); + assert(0 && "PyUnicode_READY fail in PyUnicode_InternInPlace"); return; } if (interned == NULL) { |