[Python-checkins] r46094 - python/trunk/Include/unicodeobject.h
fredrik.lundh
python-checkins at python.org
Tue May 23 12:10:57 CEST 2006
Author: fredrik.lundh
Date: Tue May 23 12:10:57 2006
New Revision: 46094
Modified:
python/trunk/Include/unicodeobject.h
Log:
needforspeed: check first *and* last character before doing a full memcmp
Modified: python/trunk/Include/unicodeobject.h
==============================================================================
--- python/trunk/Include/unicodeobject.h (original)
+++ python/trunk/Include/unicodeobject.h Tue May 23 12:10:57 2006
@@ -367,10 +367,12 @@
for (i_ = 0; i_ < (length); i_++) t_[i_] = v_;\
} while (0)
-#define Py_UNICODE_MATCH(string, offset, substring)\
- ((*((string)->str + (offset)) == *((substring)->str)) &&\
- !memcmp((string)->str + (offset), (substring)->str,\
- (substring)->length*sizeof(Py_UNICODE)))
+/* check if substring matches at given offset. the offset must be
+ valid, and the substring must not be empty */
+#define Py_UNICODE_MATCH(string, offset, substring) \
+ ((*((string)->str + (offset)) == *((substring)->str)) && \
+ ((*((string)->str + (offset) + (substring)->length-1) == *((substring)->str + (substring)->length-1))) && \
+ !memcmp((string)->str + (offset), (substring)->str, (substring)->length*sizeof(Py_UNICODE)))
#ifdef __cplusplus
extern "C" {
More information about the Python-checkins
mailing list