[Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless/pickling prickelpit.c, 1.74, 1.75

Christian Tismer tismer at centera.de
Sun May 2 03:51:43 CEST 2004


Update of /home/cvs/slpdev/src/2.3/dev/Stackless/pickling
In directory centera.de:/tmp/cvs-serv2327/dev/Stackless/pickling

Modified Files:
	prickelpit.c 
Log Message:
initialized gen_iternext_callback by a script!

Index: prickelpit.c
===================================================================
RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/pickling/prickelpit.c,v
retrieving revision 1.74
retrieving revision 1.75
diff -C2 -d -r1.74 -r1.75
*** prickelpit.c	1 May 2004 20:24:10 -0000	1.74
--- prickelpit.c	2 May 2004 01:51:41 -0000	1.75
***************
*** 1028,1038 ****
  {
  	return slp_register_execute(&PyFrame_Type, "eval_frame", 
! 				 PyEval_EvalFrame, REF_INVALID_EXEC(eval_frame))
  	    || slp_register_execute(&PyFrame_Type, "eval_frame_value", 
! 				 PyEval_EvalFrame_value, REF_INVALID_EXEC(eval_frame_value))
  	    || slp_register_execute(&PyFrame_Type, "eval_frame_noval", 
! 				 PyEval_EvalFrame_noval, REF_INVALID_EXEC(eval_frame_noval))
  	    || slp_register_execute(&PyFrame_Type, "eval_frame_iter", 
! 				 PyEval_EvalFrame_iter, REF_INVALID_EXEC(eval_frame_iter))
  	    || init_type(&wrap_PyFrame_Type, initchain);
  }
--- 1028,1038 ----
  {
  	return slp_register_execute(&PyFrame_Type, "eval_frame", 
! 		   PyEval_EvalFrame, REF_INVALID_EXEC(eval_frame))
  	    || slp_register_execute(&PyFrame_Type, "eval_frame_value", 
! 		   PyEval_EvalFrame_value, REF_INVALID_EXEC(eval_frame_value))
  	    || slp_register_execute(&PyFrame_Type, "eval_frame_noval", 
! 		   PyEval_EvalFrame_noval, REF_INVALID_EXEC(eval_frame_noval))
  	    || slp_register_execute(&PyFrame_Type, "eval_frame_iter", 
! 		   PyEval_EvalFrame_iter, REF_INVALID_EXEC(eval_frame_iter))
  	    || init_type(&wrap_PyFrame_Type, initchain);
  }
***************
*** 1438,1442 ****
   ******************************************************/
  
! #ifdef PyAPI_23
  
  /*
--- 1438,1442 ----
   ******************************************************/
  
! #if PY_VERSION_HEX >= 0x02030000
  
  /*
***************
*** 1489,1493 ****
  #define initchain init_enumtype
  
! #endif */ PyAPI_23 */
  
  /******************************************************
--- 1489,1493 ----
  #define initchain init_enumtype
  
! #endif */ PY_VERSION_HEX >= 0x02030000 */
  
  /******************************************************
***************
*** 1497,1501 ****
   ******************************************************/
  
! #ifdef PyAPI_23
  
  /*
--- 1497,1501 ----
   ******************************************************/
  
! #if PY_VERSION_HEX >= 0x02030000
  
  /*
***************
*** 1547,1551 ****
  #define initchain init_listitertype
  
! #endif /* PyAPI_23 */
  
  
--- 1547,1551 ----
  #define initchain init_listitertype
  
! #endif /* PY_VERSION_HEX >= 0x02030000 */
  
  
***************
*** 1556,1560 ****
   ******************************************************/
  
! #ifdef PyAPI_23
  
  /*
--- 1556,1560 ----
   ******************************************************/
  
! #if PY_VERSION_HEX >= 0x02030000
  
  /*
***************
*** 1617,1621 ****
  #define initchain init_rangeitertype
  
! #endif */ PyAPI_23 */
  
  
--- 1617,1621 ----
  #define initchain init_rangeitertype
  
! #endif */ PY_VERSION_HEX >= 0x02030000 */
  
  
***************
*** 1626,1630 ****
   ******************************************************/
  
! #ifdef PyAPI_23
  
  /*
--- 1626,1630 ----
   ******************************************************/
  
! #if PY_VERSION_HEX >= 0x02030000
  
  /*
***************
*** 1677,1681 ****
  #define initchain init_tupleitertype
  
! #endif /* PyAPI_23 */
  
  
--- 1677,1681 ----
  #define initchain init_tupleitertype
  
! #endif /* PY_VERSION_HEX >= 0x02030000 */
  
  
***************
*** 1686,1690 ****
   ******************************************************/
  
! #ifdef pyAPI_23
  
  /*
--- 1686,1690 ----
   ******************************************************/
  
! #if PY_VERSION_HEX >= 0x02030000
  
  /*
***************
*** 1727,1731 ****
  #define initchain init_rangetype
  
! #endif /* PyAPI_23 */
  
  
--- 1727,1731 ----
  #define initchain init_rangetype
  
! #endif /* PY_VERSION_HEX < 0x02030000 */
  
  
***************
*** 1945,1951 ****
  		 gen_new, gen_setstate)
  
  static int init_generatortype(void)
  {
! 	return init_type(&wrap_PyGenerator_Type, initchain);
  }
  #undef initchain
--- 1945,1968 ----
  		 gen_new, gen_setstate)
  
+ DEF_INVALID_EXEC(gen_iternext_callback)
+ 
  static int init_generatortype(void)
  {
! 	int res;
! 	genobject *gen = (genobject *) run_script(
! 		"def f(): yield 42\n"	/* define a generator */
! 		"g = f()\n"		/* instanciate it */
! 		"g.next()\n", "g");	/* force callback frame creation */
! 	PyFrameObject *cbframe;
! 
! 	if (gen == NULL || gen->gi_frame->f_back == NULL)
! 		return -1;
! 	cbframe = gen->gi_frame->f_back;
! 	res = slp_register_execute(cbframe->ob_type, "gen_iternext_callback",
! 		  gen->gi_frame->f_back->f_execute,
! 		  REF_INVALID_EXEC(gen_iternext_callback))
! 	      || init_type(&wrap_PyGenerator_Type, initchain);
! 	Py_DECREF(gen);
! 	return res;
  }
  #undef initchain


_______________________________________________
Stackless-checkins mailing list
Stackless-checkins at stackless.com
http://www.stackless.com/mailman/listinfo/stackless-checkins



More information about the Stackless-checkins mailing list