]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Issue #17615: On Windows (VS2010), Performances of wmemcmp() to compare Unicode
authorVictor Stinner <victor.stinner@gmail.com>
Tue, 9 Apr 2013 21:53:26 +0000 (23:53 +0200)
committerVictor Stinner <victor.stinner@gmail.com>
Tue, 9 Apr 2013 21:53:26 +0000 (23:53 +0200)
strings are not convincing. For UCS2 (16-bit wchar_t type), use a dummy loop
instead of wmemcmp(). The dummy loop is as fast, or a little bit faster.

wchar_t is only 16-bit long on Windows. wmemcmp() is still used for 32-bit
wchar_t.

Objects/unicodeobject.c
PC/pyconfig.h

index 6b63157266c236e7060b8458d51adeb024f89377..162221ceb2054d189b3fc15fe3e713f265c4eccc 100644 (file)
@@ -10375,16 +10375,7 @@ unicode_compare(PyObject *str1, PyObject *str2)
             break;
         case PyUnicode_2BYTE_KIND:
         {
-#if defined(HAVE_WMEMCMP) && SIZEOF_WCHAR_T == 2
-            int cmp = wmemcmp((wchar_t *)data1, (wchar_t *)data2, len);
-            /* normalize result of wmemcmp() into the range [-1; 1] */
-            if (cmp < 0)
-                return -1;
-            if (cmp > 0)
-                return 1;
-#else
             COMPARE(Py_UCS2, Py_UCS2);
-#endif
             break;
         }
         case PyUnicode_4BYTE_KIND:
index 1284db8610e599640ccc873a406664ac153dcc24..c5f16e580ff8cc0850c893cc0c2360c8abf697b6 100644 (file)
@@ -645,9 +645,6 @@ Py_NO_ENABLE_SHARED to find out.  Also support MS_NO_COREDLL for b/w compat */
 #define HAVE_WCSXFRM 1
 #endif
 
-/* Define to 1 if you have the `wmemcmp' function. */
-#define HAVE_WMEMCMP 1
-
 /* Define if the zlib library has inflateCopy */
 #define HAVE_ZLIB_COPY 1