summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
9c034c5)
Our types are `dynamic', because the Python code adds extra methods to
them. Apparently the correct thing to do in such cases is to put the
raw type name in the `tp_name' slot, and stuff the module name into
`tp_dict' by hand.
PyTypeObject *inittype(PyTypeObject *tyskel)
{
PyTypeObject *inittype(PyTypeObject *tyskel)
{
+ static PyObject *modname = 0;
PyTypeObject *ty = newtype(&PyType_Type, tyskel, 0);
PyTypeObject *ty = newtype(&PyType_Type, tyskel, 0);
+ if (!modname) modname = PyString_FromString("catacomb");
ty->tp_flags |= Py_TPFLAGS_HEAPTYPE;
PyType_Ready(ty);
ty->tp_flags |= Py_TPFLAGS_HEAPTYPE;
PyType_Ready(ty);
+ PyDict_SetItemString(ty->tp_dict, "__module__", modname);