[Python-checkins] python/dist/src/Objects sliceobject.c,2.13,2.14

mwh@users.sourceforge.net mwh@users.sourceforge.net
2002年6月11日 06:38:44 -0700


Update of /cvsroot/python/python/dist/src/Objects
In directory usw-pr-cvs1:/tmp/cvs-serv11746/Objects
Modified Files:
	sliceobject.c 
Log Message:
Fix for problem reported by Neal Norwitz. Tighten up calculation of
slicelength. Include his test case.
Index: sliceobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/sliceobject.c,v
retrieving revision 2.13
retrieving revision 2.14
diff -C2 -d -r2.13 -r2.14
*** sliceobject.c	11 Jun 2002 10:55:11 -0000	2.13
--- sliceobject.c	11 Jun 2002 13:38:42 -0000	2.14
***************
*** 152,162 ****
 		if (*stop > length) *stop = length;
 	}
! 
! 	if (*step < 0) {
 		*slicelength = (*stop-*start+1)/(*step)+1;
 	} else {
 		*slicelength = (*stop-*start-1)/(*step)+1;
 	}
- 	if (*slicelength < 0) *slicelength = 0;
 
 	return 0;
--- 152,164 ----
 		if (*stop > length) *stop = length;
 	}
! 	
! 	if ((*stop - *start)*(*step) <= 0) {
! 		*slicelength = 0;
! 	}
! 	else if (*step < 0) {
 		*slicelength = (*stop-*start+1)/(*step)+1;
 	} else {
 		*slicelength = (*stop-*start-1)/(*step)+1;
 	}
 
 	return 0;

AltStyle によって変換されたページ (->オリジナル) /