Introduce a wrapper `typeready' around `PyType_Ready' which sets the
module name, and call it everywhere it's needed.
g->ty.ht_type.tp_alloc = PyType_GenericAlloc;
g->ty.ht_type.tp_free = 0;
g->ty.ht_type.tp_new = gcipher_pynew;
g->ty.ht_type.tp_alloc = PyType_GenericAlloc;
g->ty.ht_type.tp_free = 0;
g->ty.ht_type.tp_new = gcipher_pynew;
- PyType_Ready(&g->ty.ht_type);
+ typeready(&g->ty.ht_type);
return ((PyObject *)g);
}
return ((PyObject *)g);
}
g->ty.ht_type.tp_alloc = PyType_GenericAlloc;
g->ty.ht_type.tp_free = 0;
g->ty.ht_type.tp_new = ghash_pynew;
g->ty.ht_type.tp_alloc = PyType_GenericAlloc;
g->ty.ht_type.tp_free = 0;
g->ty.ht_type.tp_new = ghash_pynew;
- PyType_Ready(&g->ty.ht_type);
+ typeready(&g->ty.ht_type);
return ((PyObject *)g);
}
return ((PyObject *)g);
}
g->ty.ht_type.tp_alloc = PyType_GenericAlloc;
g->ty.ht_type.tp_free = 0;
g->ty.ht_type.tp_new = gmac_pynew;
g->ty.ht_type.tp_alloc = PyType_GenericAlloc;
g->ty.ht_type.tp_free = 0;
g->ty.ht_type.tp_new = gmac_pynew;
- PyType_Ready(&g->ty.ht_type);
+ typeready(&g->ty.ht_type);
return ((PyObject *)g);
}
return ((PyObject *)g);
}
g->ty.ht_type.tp_alloc = PyType_GenericAlloc;
g->ty.ht_type.tp_free = 0;
g->ty.ht_type.tp_new = gmhash_pynew;
g->ty.ht_type.tp_alloc = PyType_GenericAlloc;
g->ty.ht_type.tp_free = 0;
g->ty.ht_type.tp_new = gmhash_pynew;
- PyType_Ready(&g->ty.ht_type);
+ typeready(&g->ty.ht_type);
g->m = m;
g->f = f;
return ((PyObject *)g);
g->m = m;
g->f = f;
return ((PyObject *)g);
g->ty.ht_type.tp_alloc = PyType_GenericAlloc;
g->ty.ht_type.tp_free = 0;
g->ty.ht_type.tp_new = gprp_pynew;
g->ty.ht_type.tp_alloc = PyType_GenericAlloc;
g->ty.ht_type.tp_free = 0;
g->ty.ht_type.tp_new = gprp_pynew;
- PyType_Ready(&g->ty.ht_type);
+ typeready(&g->ty.ht_type);
return ((PyObject *)g);
}
return ((PyObject *)g);
}
extern void *newtype(PyTypeObject *, const PyTypeObject *, const char *);
extern PyObject *mkexc(PyObject *, PyObject *, const char *, PyMethodDef *);
extern void *newtype(PyTypeObject *, const PyTypeObject *, const char *);
extern PyObject *mkexc(PyObject *, PyObject *, const char *, PyMethodDef *);
+extern void typeready(PyTypeObject *);
extern PyTypeObject *inittype(PyTypeObject *);
extern void addmethods(const PyMethodDef *);
extern PyMethodDef *donemethods(void);
extern PyTypeObject *inittype(PyTypeObject *);
extern void addmethods(const PyMethodDef *);
extern PyMethodDef *donemethods(void);
cobj->ty.ht_type.tp_alloc = PyType_GenericAlloc;
cobj->ty.ht_type.tp_free = 0;
cobj->ty.ht_type.tp_new = ecpt_pynew;
cobj->ty.ht_type.tp_alloc = PyType_GenericAlloc;
cobj->ty.ht_type.tp_free = 0;
cobj->ty.ht_type.tp_new = ecpt_pynew;
- PyType_Ready(&cobj->ty.ht_type);
+ typeready(&cobj->ty.ht_type);
return ((PyObject *)cobj);
}
return ((PyObject *)cobj);
}
fobj->ty.ht_type.tp_alloc = PyType_GenericAlloc;
fobj->ty.ht_type.tp_free = 0;
fobj->ty.ht_type.tp_new = fe_pynew;
fobj->ty.ht_type.tp_alloc = PyType_GenericAlloc;
fobj->ty.ht_type.tp_free = 0;
fobj->ty.ht_type.tp_new = fe_pynew;
- PyType_Ready(&fobj->ty.ht_type);
+ typeready(&fobj->ty.ht_type);
return ((PyObject *)fobj);
}
return ((PyObject *)fobj);
}
gobj->ty.ht_type.tp_alloc = PyType_GenericAlloc;
gobj->ty.ht_type.tp_free = 0;
gobj->ty.ht_type.tp_new = ge_pynew;
gobj->ty.ht_type.tp_alloc = PyType_GenericAlloc;
gobj->ty.ht_type.tp_free = 0;
gobj->ty.ht_type.tp_new = ge_pynew;
- PyType_Ready(&gobj->ty.ht_type);
+ typeready(&gobj->ty.ht_type);
return ((PyObject *)gobj);
}
return ((PyObject *)gobj);
}
g->ty.ht_type.tp_new = gcirand_pynew;
else
g->ty.ht_type.tp_new = gcrand_pynew;
g->ty.ht_type.tp_new = gcirand_pynew;
else
g->ty.ht_type.tp_new = gcrand_pynew;
- PyType_Ready(&g->ty.ht_type);
+ typeready(&g->ty.ht_type);
return ((PyObject *)g);
}
return ((PyObject *)g);
}
#include "catacomb-python.h"
#include "catacomb-python.h"
+/*----- External values ---------------------------------------------------*/
+
+static PyObject *modname = 0;
+
/*----- Conversions -------------------------------------------------------*/
PyObject *getulong(unsigned long w)
/*----- Conversions -------------------------------------------------------*/
PyObject *getulong(unsigned long w)
+void typeready(PyTypeObject *ty)
+{
+ PyType_Ready(ty);
+ PyDict_SetItemString(ty->tp_dict, "__module__", modname);
+}
+
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;
ty->tp_flags |= Py_TPFLAGS_HEAPTYPE;
- PyType_Ready(ty);
- PyDict_SetItemString(ty->tp_dict, "__module__", modname);
+ modname = PyString_FromString("catacomb");
INITTYPE(itemiter, root);
INITTYPE(valiter, root);
}
INITTYPE(itemiter, root);
INITTYPE(valiter, root);
}