init_cframetype()

Last-modified: 2007-06-07 (木) 03:28:38

StacklessのPyCFrame_Typeを登録する
slp_register_execute(PyTypeObject *t, char *name, PyFrame_ExecFunc *good, PyFrame_ExecFunc *bad)
実行時呼ばれる->run_cframe(PyFrameObject *f, int exc, PyObject *retval)

	/* register the cframe exec func */
	return slp_register_execute(&PyCFrame_Type, "run_cframe",
				    run_cframe, REF_INVALID_EXEC(run_cframe));

 PyTypeObject PyCFrame_Type = {

	PyObject_HEAD_INIT(&PyType_Type)
	0,
	"stackless.cframe",
	sizeof(PyCFrameObject),
	0,
	(destructor)cframe_dealloc,		/* tp_dealloc */
	0,					/* tp_print */
	0,					/* tp_getattr */
	0,					/* tp_setattr */
	0,					/* tp_compare */
	0,					/* tp_repr */
	0,					/* tp_as_number */
	0,					/* tp_as_sequence */
	0,					/* tp_as_mapping */
	0,					/* tp_hash */
	0,					/* tp_call */
	0,					/* tp_str */
	PyObject_GenericGetAttr,		/* tp_getattro */
	PyObject_GenericSetAttr,		/* tp_setattro */
	0,					/* tp_as_buffer */
	Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /* tp_flags */
	0,					/* tp_doc */
	(traverseproc)cframe_traverse,		/* tp_traverse */
	(inquiry) cframe_clear,			/* tp_clear */
	0,					/* tp_richcompare */
	0,					/* tp_weaklistoffset */
	0,					/* tp_iter */
	0,					/* tp_iternext */
	cframe_methods,				/* tp_methods */
	cframe_memberlist,			/* tp_members */
	0,					/* tp_getset */
	0,					/* tp_base */
	0,					/* tp_dict */
	0,					/* tp_descr_get */
	0,					/* tp_descr_set */
	0,					/* tp_dictoffset */
	0,					/* tp_init */
	0,					/* tp_alloc */
	cframe_new,				/* tp_new */
	_PyObject_Del,				/* tp_free */

};