diff Objects/stringobject.c @ 12966:447efb64c72d legacy-trunk

Fredrik Lundh <effbot@telia.com>: Simplify find code; this is a performance improvement on at least some platforms.
author Fred Drake <fdrake@acm.org>
date Tue, 20 Jun 2000 15:47:54 +0000
parents 2d0b99778edf
children 18920eaa1226
line wrap: on
line diff
--- a/Objects/stringobject.c	Tue Jun 20 08:12:48 2000 +0000
+++ b/Objects/stringobject.c	Tue Jun 20 15:47:54 2000 +0000
@@ -651,7 +651,7 @@
 
 	i = j = 0;
 	while (i+n <= len) {
-		if (s[i] == sub[0] && (n == 1 || memcmp(s+i, sub, n) == 0)) {
+		if (s[i] == sub[0] && memcmp(s+i, sub, n) == 0) {
 			if (maxsplit-- <= 0)
 				break;
 			item = PyString_FromStringAndSize(s+j, (int)(i-j));
@@ -852,8 +852,7 @@
 			return (long)i;
 		last -= n;
 		for (; i <= last; ++i)
-			if (s[i] == sub[0] &&
-			    (n == 1 || memcmp(&s[i+1], &sub[1], n-1) == 0))
+			if (s[i] == sub[0] && memcmp(&s[i], sub, n) == 0)
 				return (long)i;
 	}
 	else {
@@ -862,8 +861,7 @@
         	if (n == 0 && i <= last)
 			return (long)last;
 		for (j = last-n; j >= i; --j)
-			if (s[j] == sub[0] &&
-			    (n == 1 || memcmp(&s[j+1], &sub[1], n-1) == 0))
+			if (s[j] == sub[0] && memcmp(&s[j], sub, n) == 0)
 				return (long)j;
 	}
 	
@@ -1415,9 +1413,7 @@
 	len -= pat_len;
 
 	for (ii = 0; ii <= len; ii++) {
-		if (mem[ii] == pat[0] &&
-		    (pat_len == 1 ||
-		     memcmp(&mem[ii+1], &pat[1], pat_len-1) == 0)) {
+		if (mem[ii] == pat[0] && memcmp(&mem[ii], pat, pat_len) == 0) {
 			return ii;
 		}
 	}