[Python-checkins] python/dist/src/Modules collectionsmodule.c, 1.10, 1.11

rhettinger at users.sourceforge.net rhettinger at users.sourceforge.net
Thu Mar 4 03:00:56 EST 2004


Update of /cvsroot/python/python/dist/src/Modules
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10342

Modified Files:
	collectionsmodule.c 
Log Message:
Special case endpoint access for speed.

Index: collectionsmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/collectionsmodule.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** collectionsmodule.c	1 Mar 2004 23:16:20 -0000	1.10
--- collectionsmodule.c	4 Mar 2004 08:00:54 -0000	1.11
***************
*** 327,342 ****
  	}
  
! 	i += deque->leftindex;
! 	n = i / BLOCKLEN;
! 	i %= BLOCKLEN;
! 	if (i < (deque->len >> 1)) {
  		b = deque->leftblock;
! 		while (n--)
! 			b = b->rightlink;
! 	} else {
! 		n = (deque->leftindex + deque->len - 1) / BLOCKLEN - n;
  		b = deque->rightblock;
! 		while (n--)
! 			b = b->leftlink;
  	}
  	item = b->data[i];
--- 327,350 ----
  	}
  
! 	if (i == 0) {
! 		i = deque->leftindex;
  		b = deque->leftblock;
! 	} else if (i == deque->len - 1) {
! 		i = deque->rightindex;
  		b = deque->rightblock;
! 	} else {
! 		i += deque->leftindex;
! 		n = i / BLOCKLEN;
! 		i %= BLOCKLEN;
! 		if (i < (deque->len >> 1)) {
! 			b = deque->leftblock;
! 			while (n--)
! 				b = b->rightlink;
! 		} else {
! 			n = (deque->leftindex + deque->len - 1) / BLOCKLEN - n;
! 			b = deque->rightblock;
! 			while (n--)
! 				b = b->leftlink;
! 		}
  	}
  	item = b->data[i];




More information about the Python-checkins mailing list