From 247109e74dcdde19c491c966496655cb87834981 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Tue, 9 Apr 2013 23:53:26 +0200 Subject: Issue #17615: On Windows (VS2010), Performances of wmemcmp() to compare Unicode 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 | 9 --------- PC/pyconfig.h | 3 --- 2 files changed, 12 deletions(-) diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 6b63157..162221c 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -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: diff --git a/PC/pyconfig.h b/PC/pyconfig.h index 1284db8..c5f16e5 100644 --- a/PC/pyconfig.h +++ b/PC/pyconfig.h @@ -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 -- cgit v0.12