[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