[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