[Python-checkins] CVS: python/dist/src/Objects stringobject.c,2.68,2.69

Fred L. Drake python-dev@python.org
Tue, 20 Jun 2000 08:47:56 -0700


Update of /cvsroot/python/python/dist/src/Objects
In directory slayer.i.sourceforge.net:/tmp/cvs-serv26919

Modified Files:
	stringobject.c 
Log Message:

Fredrik Lundh <effbot@telia.com>:
Simplify find code; this is a performance improvement on at least some
platforms.


Index: stringobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/stringobject.c,v
retrieving revision 2.68
retrieving revision 2.69
diff -C2 -r2.68 -r2.69
*** stringobject.c	2000/06/14 09:18:09	2.68
--- stringobject.c	2000/06/20 15:47:54	2.69
***************
*** 652,656 ****
  	i = j = 0;
  	while (i+n <= len) {
! 		if (s[i] == sub[0] && (n == 1 || memcmp(s+i, sub, n) == 0)) {
  			if (maxsplit-- <= 0)
  				break;
--- 652,656 ----
  	i = j = 0;
  	while (i+n <= len) {
! 		if (s[i] == sub[0] && memcmp(s+i, sub, n) == 0) {
  			if (maxsplit-- <= 0)
  				break;
***************
*** 853,858 ****
  		last -= n;
  		for (; i <= last; ++i)
! 			if (s[i] == sub[0] &&
! 			    (n == 1 || memcmp(&s[i+1], &sub[1], n-1) == 0))
  				return (long)i;
  	}
--- 853,857 ----
  		last -= n;
  		for (; i <= last; ++i)
! 			if (s[i] == sub[0] && memcmp(&s[i], sub, n) == 0)
  				return (long)i;
  	}
***************
*** 863,868 ****
  			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))
  				return (long)j;
  	}
--- 862,866 ----
  			return (long)last;
  		for (j = last-n; j >= i; --j)
! 			if (s[j] == sub[0] && memcmp(&s[j], sub, n) == 0)
  				return (long)j;
  	}
***************
*** 1416,1422 ****
  
  	for (ii = 0; ii <= len; ii++) {
! 		if (mem[ii] == pat[0] &&
! 		    (pat_len == 1 ||
! 		     memcmp(&mem[ii+1], &pat[1], pat_len-1) == 0)) {
  			return ii;
  		}
--- 1414,1418 ----
  
  	for (ii = 0; ii <= len; ii++) {
! 		if (mem[ii] == pat[0] && memcmp(&mem[ii], pat, pat_len) == 0) {
  			return ii;
  		}