X-Git-Url: https://git.distorted.org.uk/~mdw/pyke/blobdiff_plain/f60b520f46e871fcc300edb64e2e297097d1ffd9..35c34efbd19d70fba25a35e638457d97f3f42d51:/util.c diff --git a/util.c b/util.c index f56c7fd..f63bda0 100644 --- a/util.c +++ b/util.c @@ -28,6 +28,10 @@ #include "catacomb-python.h" +/*----- External values ---------------------------------------------------*/ + +static PyObject *modname = 0; + /*----- Conversions -------------------------------------------------------*/ PyObject *getulong(unsigned long w) @@ -168,11 +172,17 @@ void *newtype(PyTypeObject *metaty, return (ty); } +void typeready(PyTypeObject *ty) +{ + PyType_Ready(ty); + PyDict_SetItemString(ty->tp_dict, "__module__", modname); +} + PyTypeObject *inittype(PyTypeObject *tyskel) { PyTypeObject *ty = newtype(&PyType_Type, tyskel, 0); ty->tp_flags |= Py_TPFLAGS_HEAPTYPE; - PyType_Ready(ty); + typeready(ty); return (ty); } @@ -216,8 +226,8 @@ PyMethodDef *donemethods(void) /*----- Exceptions --------------------------------------------------------*/ -PyObject * mkexc(PyObject *mod, PyObject *base, - const char *name, PyMethodDef *mm) +PyObject *mkexc(PyObject *mod, PyObject *base, + const char *name, PyMethodDef *mm) { PyObject *nameobj = 0; PyObject *dict = 0; @@ -403,7 +413,7 @@ PySequenceMethods gmap_pysequence = { 0 /* @sq_inplace_repeat@ */ }; -int gmap_pysize(PyObject *me) +Py_ssize_t gmap_pysize(PyObject *me) { PyObject *i = 0, *x = 0; int rc = -1; @@ -634,6 +644,7 @@ PyMethodDef gmap_pymethods[] = { void util_pyinit(void) { + modname = PyString_FromString("catacomb"); INITTYPE(itemiter, root); INITTYPE(valiter, root); }