[Python-checkins] r74133 - in python/branches/py3k: Python/ceval.c

alexandre.vassalotti python-checkins at python.org
Tue Jul 21 07:23:51 CEST 2009


Author: alexandre.vassalotti
Date: Tue Jul 21 07:23:51 2009
New Revision: 74133

Log:
Merged revisions 73750 via svnmerge from 
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r73750 | benjamin.peterson | 2009-07-01 19:45:19 -0400 (Wed, 01 Jul 2009) | 1 line
  
  small optimization: avoid popping the current block until we have to
........


Modified:
   python/branches/py3k/   (props changed)
   python/branches/py3k/Python/ceval.c

Modified: python/branches/py3k/Python/ceval.c
==============================================================================
--- python/branches/py3k/Python/ceval.c	(original)
+++ python/branches/py3k/Python/ceval.c	Tue Jul 21 07:23:51 2009
@@ -2839,19 +2839,18 @@
 
 fast_block_end:
 		while (why != WHY_NOT && f->f_iblock > 0) {
-			PyTryBlock *b = PyFrame_BlockPop(f);
+			/* Peek at the current block. */
+			PyTryBlock *b = &f->f_blockstack[f->f_iblock - 1];
 
 			assert(why != WHY_YIELD);
 			if (b->b_type == SETUP_LOOP && why == WHY_CONTINUE) {
-				/* For a continue inside a try block,
-				   don't pop the block for the loop. */
-				PyFrame_BlockSetup(f, b->b_type, b->b_handler,
-						   b->b_level);
 				why = WHY_NOT;
 				JUMPTO(PyLong_AS_LONG(retval));
 				Py_DECREF(retval);
 				break;
 			}
+			/* Now we have to pop the block. */
+			f->f_iblock--;
 
 			if (b->b_type == EXCEPT_HANDLER) {
 				UNWIND_EXCEPT_HANDLER(b);


More information about the Python-checkins mailing list