[Python-checkins] python/dist/src/Python newcompile.c, 1.1.2.67, 1.1.2.68

nnorwitz at projects.sourceforge.net nnorwitz at projects.sourceforge.net
Tue Jan 27 17:49:08 EST 2004


Update of /cvsroot/python/python/dist/src/Python
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23400/Python
Modified Files:
 Tag: ast-branch
	newcompile.c 
Log Message:
Cleanup, remove unused u_exit and unneeded u_tmp
Index: newcompile.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Python/Attic/newcompile.c,v
retrieving revision 1.1.2.67
retrieving revision 1.1.2.68
diff -C2 -d -r1.1.2.67 -r1.1.2.68
*** newcompile.c	27 Jan 2004 19:40:18 -0000	1.1.2.67
--- newcompile.c	27 Jan 2004 22:49:04 -0000	1.1.2.68
***************
*** 24,29 ****
 
 Inappropriate Exceptions:
! #: problem with cell objects (see test_builtins::test_map)
! (closures need to be fully implemented)
 #: x = [1] ; x[0] += 1 
 raises TypeError: object does not support item assignment
--- 24,28 ----
 
 Inappropriate Exceptions:
! #: problem with cell objects (closures still have bugs)
 #: x = [1] ; x[0] += 1 
 raises TypeError: object does not support item assignment
***************
*** 85,90 ****
 	int u_curblock; /* index of current block in u_blocks */
 	int u_tmpname; /* temporary variables for list comps */
- 	identifier u_tmp; /* name for u_tmpname */
- 	struct basicblock u_exit;
 	struct basicblock **u_blocks;
 
--- 84,87 ----
***************
*** 1127,1131 ****
 	case EXCEPT:
 	case FINALLY_TRY:
! 		while (--i > 0 && c->u->u_fblock[i].fb_type != LOOP)
 			;
 		if (i == -1)
--- 1124,1128 ----
 	case EXCEPT:
 	case FINALLY_TRY:
! 		while (--i >= 0 && c->u->u_fblock[i].fb_type != LOOP)
 			;
 		if (i == -1)
***************
*** 1856,1867 ****
 
 static int
! compiler_listcomp_generator(struct compiler *c, 
 asdl_seq *generators, int gen_index, 
 expr_ty elt)
 {
- /* need to capture u_tmp here for nested list comps,
- u_tmp is set to NULL in compiler_listcomp */
- PyObject *u_tmp = c->u->u_tmp;
- 
 	/* generate code for the iterator, then each of the ifs,
 	 and then write to the element */
--- 1853,1860 ----
 
 static int
! compiler_listcomp_generator(struct compiler *c, PyObject *tmpname,
 asdl_seq *generators, int gen_index, 
 expr_ty elt)
 {
 	/* generate code for the iterator, then each of the ifs,
 	 and then write to the element */
***************
*** 1897,1906 ****
 
 if (++gen_index < asdl_seq_LEN(generators))
! if (!compiler_listcomp_generator(c, generators, gen_index, elt))
 return 0;
 
 /* only append after the last for generator */
 if (gen_index >= asdl_seq_LEN(generators)) {
! if (!compiler_nameop(c, u_tmp, Load))
 		return 0;
 VISIT(c, expr, elt);
--- 1890,1900 ----
 
 if (++gen_index < asdl_seq_LEN(generators))
! if (!compiler_listcomp_generator(c, tmpname, 
! generators, gen_index, elt))
 return 0;
 
 /* only append after the last for generator */
 if (gen_index >= asdl_seq_LEN(generators)) {
! if (!compiler_nameop(c, tmpname, Load))
 		return 0;
 VISIT(c, expr, elt);
***************
*** 1920,1924 ****
 /* delete the append method added to locals */
 	if (gen_index == 1)
! if (!compiler_nameop(c, u_tmp, Del))
 		return 0;
 	
--- 1914,1918 ----
 /* delete the append method added to locals */
 	if (gen_index == 1)
! if (!compiler_nameop(c, tmpname, Del))
 		return 0;
 	
***************
*** 1931,1934 ****
--- 1925,1929 ----
 	char tmpname[256];
 	identifier tmp;
+ int rc = 0;
 	static identifier append;
 	asdl_seq *generators = e->v.ListComp.generators;
***************
*** 1947,1957 ****
 	ADDOP(c, DUP_TOP);
 	ADDOP_O(c, LOAD_ATTR, append, names);
! 	if (!compiler_nameop(c, tmp, Store))
! 		return 0;
! 	c->u->u_tmp = tmp;
! 	if (!compiler_listcomp_generator(c, generators, 0, e->v.ListComp.elt))
! 		return 0;
! 	c->u->u_tmp = NULL;
! 	return 1;
 }
 
--- 1942,1950 ----
 	ADDOP(c, DUP_TOP);
 	ADDOP_O(c, LOAD_ATTR, append, names);
! 	if (compiler_nameop(c, tmp, Store))
! rc = compiler_listcomp_generator(c, tmp, generators, 0, 
! e->v.ListComp.elt);
! Py_DECREF(tmp);
! 	return rc;
 }
 


More information about the Python-checkins mailing list

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