X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/catacomb-python/blobdiff_plain/b2687a0a4b3c5e45cad7c5815a6d3805bfc8d4f1..eb0f76ed2e02a0cfef9b837b96dfbbeb1193f4b8:/util.c?ds=sidebyside diff --git a/util.c b/util.c index 89130cb..717c3d9 100644 --- a/util.c +++ b/util.c @@ -1,6 +1,4 @@ /* -*-c-*- - * - * $Id$ * * Miscellaneous utilities (not Catacomb-specific) * @@ -165,16 +163,19 @@ void *newtype(PyTypeObject *metaty, ty->ht_name = PyString_FromString(ty->ht_type.tp_name); if (ty->ht_name) ty->ht_type.tp_name = PyString_AS_STRING(ty->ht_name); - PyObject_INIT(&ty->ht_type, metaty); + DISCARD(PyObject_INIT(&ty->ht_type, metaty)); Py_INCREF(metaty); return (ty); } PyTypeObject *inittype(PyTypeObject *tyskel) { + static PyObject *modname = 0; PyTypeObject *ty = newtype(&PyType_Type, tyskel, 0); + if (!modname) modname = PyString_FromString("catacomb"); ty->tp_flags |= Py_TPFLAGS_HEAPTYPE; PyType_Ready(ty); + PyDict_SetItemString(ty->tp_dict, "__module__", modname); return (ty); } @@ -634,13 +635,13 @@ PyMethodDef gmap_pymethods[] = { /*----- Initialization ----------------------------------------------------*/ -void util_init(void) +void util_pyinit(void) { INITTYPE(itemiter, root); INITTYPE(valiter, root); } -void util_insert(PyObject *mod) +void util_pyinsert(PyObject *mod) { INSERT("ItemIter", itemiter_pytype); INSERT("ValueIter", valiter_pytype);