]> granicus.if.org Git - python/commitdiff
Optimize _PyUnicode_HasNULChars(): use findchar() instead of PyUnicode_Contains()
authorVictor Stinner <victor.stinner@gmail.com>
Tue, 23 Oct 2012 00:52:18 +0000 (02:52 +0200)
committerVictor Stinner <victor.stinner@gmail.com>
Tue, 23 Oct 2012 00:52:18 +0000 (02:52 +0200)
Objects/unicodeobject.c

index 362f2cffcf12c6d71d7c34bda82e11982c52e639..a7efb01a0421224db8ac54b5a1b1c32ab72389ad 100644 (file)
@@ -3573,18 +3573,20 @@ PyUnicode_DecodeFSDefaultAndSize(const char *s, Py_ssize_t size)
 
 
 int
-_PyUnicode_HasNULChars(PyObject* s)
+_PyUnicode_HasNULChars(PyObject* str)
 {
-    static PyObject *nul = NULL;
+    Py_ssize_t pos;
 
-    if (nul == NULL)
-        nul = PyUnicode_FromStringAndSize("\0", 1);
-    if (nul == NULL)
+    if (PyUnicode_READY(str) == -1)
         return -1;
-    return PyUnicode_Contains(s, nul);
+    pos = findchar(PyUnicode_DATA(str), PyUnicode_KIND(str),
+                   PyUnicode_GET_LENGTH(str), '\0', 1);
+    if (pos == -1)
+        return 0;
+    else
+        return 1;
 }
 
-
 int
 PyUnicode_FSConverter(PyObject* arg, void* addr)
 {