X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb-python/blobdiff_plain/d7ab1bab81155baa763449d5afa81e16df98dbe7..11cb3d97caae1888a6d6ae63ff6e2dea9f7cce01:/field.c diff --git a/field.c b/field.c index ea7d6de..df6d4d4 100644 --- a/field.c +++ b/field.c @@ -56,20 +56,19 @@ static PyObject *fe_pynew(PyTypeObject *ty, PyObject *arg, PyObject *kw) static PyObject *field_dopywrap(PyTypeObject *ty, field *f) { - field_pyobj *fobj = newtype(ty, 0); + field_pyobj *fobj = newtype(ty, 0, f->ops->name); fobj->f = f; - fobj->ty.tp_name = (/*unconst*/ char *)f->ops->name; - fobj->ty.tp_basicsize = sizeof(fe_pyobj); - fobj->ty.tp_base = fe_pytype; + fobj->ty.type.tp_basicsize = sizeof(fe_pyobj); + fobj->ty.type.tp_base = fe_pytype; Py_INCREF(fe_pytype); - fobj->ty.tp_flags = (Py_TPFLAGS_DEFAULT | - Py_TPFLAGS_BASETYPE | - Py_TPFLAGS_CHECKTYPES | - Py_TPFLAGS_HEAPTYPE); - fobj->ty.tp_alloc = PyType_GenericAlloc; - fobj->ty.tp_free = _PyObject_Del; - fobj->ty.tp_new = fe_pynew; - PyType_Ready(&fobj->ty); + fobj->ty.type.tp_flags = (Py_TPFLAGS_DEFAULT | + Py_TPFLAGS_BASETYPE | + Py_TPFLAGS_CHECKTYPES | + Py_TPFLAGS_HEAPTYPE); + fobj->ty.type.tp_alloc = PyType_GenericAlloc; + fobj->ty.type.tp_free = 0; + fobj->ty.type.tp_new = fe_pynew; + PyType_Ready(&fobj->ty.type); return ((PyObject *)fobj); } @@ -293,7 +292,7 @@ static void fe_pydealloc(PyObject *me) { Py_DECREF(FE_FOBJ(me)); MP_DROP(FE_X(me)); - PyObject_DEL(me); + FREEOBJ(me); } #define UNOP(name, check) \ @@ -408,7 +407,7 @@ static PyNumberMethods fe_pynumber = { }; static PyTypeObject fe_pytype_skel = { - PyObject_HEAD_INIT(&PyType_Type) 0, /* Header */ + PyObject_HEAD_INIT(0) 0, /* Header */ "catacomb.FE", /* @tp_name@ */ sizeof(fe_pyobj), /* @tp_basicsize@ */ 0, /* @tp_itemsize@ */ @@ -440,7 +439,7 @@ static PyTypeObject fe_pytype_skel = { fe_pyrichcompare, /* @tp_richcompare@ */ 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ - 0, /* @tp_iternexr@ */ + 0, /* @tp_iternext@ */ fe_pymethods, /* @tp_methods@ */ 0, /* @tp_members@ */ fe_pygetset, /* @tp_getset@ */ @@ -452,7 +451,7 @@ static PyTypeObject fe_pytype_skel = { 0, /* @tp_init@ */ PyType_GenericAlloc, /* @tp_alloc@ */ abstract_pynew, /* @tp_new@ */ - _PyObject_Del, /* @tp_free@ */ + 0, /* @tp_free@ */ 0 /* @tp_is_gc@ */ }; @@ -538,7 +537,7 @@ static PyMethodDef field_pymethods[] = { }; static PyTypeObject field_pytype_skel = { - PyObject_HEAD_INIT(&PyType_Type) 0, /* Header */ + PyObject_HEAD_INIT(0) 0, /* Header */ "catacomb.Field", /* @tp_name@ */ sizeof(field_pyobj), /* @tp_basicsize@ */ 0, /* @tp_itemsize@ */ @@ -569,7 +568,7 @@ static PyTypeObject field_pytype_skel = { field_pyrichcompare, /* @tp_richcompare@ */ 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ - 0, /* @tp_iternexr@ */ + 0, /* @tp_iternext@ */ field_pymethods, /* @tp_methods@ */ 0, /* @tp_members@ */ field_pygetset, /* @tp_getset@ */ @@ -581,7 +580,7 @@ static PyTypeObject field_pytype_skel = { 0, /* @tp_init@ */ PyType_GenericAlloc, /* @tp_alloc@ */ abstract_pynew, /* @tp_new@ */ - _PyObject_Del, /* @tp_free@ */ + 0, /* @tp_free@ */ 0 /* @tp_is_gc@ */ }; @@ -616,7 +615,7 @@ static PyGetSetDef primefield_pygetset[] = { }; static PyTypeObject primefield_pytype_skel = { - PyObject_HEAD_INIT(&PyType_Type) 0, /* Header */ + PyObject_HEAD_INIT(0) 0, /* Header */ "catacomb.PrimeField", /* @tp_name@ */ sizeof(field_pyobj), /* @tp_basicsize@ */ 0, /* @tp_itemsize@ */ @@ -647,7 +646,7 @@ static PyTypeObject primefield_pytype_skel = { field_pyrichcompare, /* @tp_richcompare@ */ 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ - 0, /* @tp_iternexr@ */ + 0, /* @tp_iternext@ */ 0, /* @tp_methods@ */ 0, /* @tp_members@ */ primefield_pygetset, /* @tp_getset@ */ @@ -659,7 +658,7 @@ static PyTypeObject primefield_pytype_skel = { 0, /* @tp_init@ */ PyType_GenericAlloc, /* @tp_alloc@ */ primefield_pynew, /* @tp_new@ */ - _PyObject_Del, /* @tp_free@ */ + 0, /* @tp_free@ */ 0 /* @tp_is_gc@ */ }; @@ -683,7 +682,7 @@ end: } static PyTypeObject niceprimefield_pytype_skel = { - PyObject_HEAD_INIT(&PyType_Type) 0, /* Header */ + PyObject_HEAD_INIT(0) 0, /* Header */ "catacomb.NicePrimeField", /* @tp_name@ */ sizeof(field_pyobj), /* @tp_basicsize@ */ 0, /* @tp_itemsize@ */ @@ -714,7 +713,7 @@ static PyTypeObject niceprimefield_pytype_skel = { field_pyrichcompare, /* @tp_richcompare@ */ 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ - 0, /* @tp_iternexr@ */ + 0, /* @tp_iternext@ */ 0, /* @tp_methods@ */ 0, /* @tp_members@ */ 0, /* @tp_getset@ */ @@ -726,7 +725,7 @@ static PyTypeObject niceprimefield_pytype_skel = { 0, /* @tp_init@ */ PyType_GenericAlloc, /* @tp_alloc@ */ niceprimefield_pynew, /* @tp_new@ */ - _PyObject_Del, /* @tp_free@ */ + 0, /* @tp_free@ */ 0 /* @tp_is_gc@ */ }; @@ -743,7 +742,7 @@ static PyGetSetDef binfield_pygetset[] = { }; static PyTypeObject binfield_pytype_skel = { - PyObject_HEAD_INIT(&PyType_Type) 0, /* Header */ + PyObject_HEAD_INIT(0) 0, /* Header */ "catacomb.BinField", /* @tp_name@ */ sizeof(field_pyobj), /* @tp_basicsize@ */ 0, /* @tp_itemsize@ */ @@ -774,7 +773,7 @@ static PyTypeObject binfield_pytype_skel = { field_pyrichcompare, /* @tp_richcompare@ */ 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ - 0, /* @tp_iternexr@ */ + 0, /* @tp_iternext@ */ 0, /* @tp_methods@ */ 0, /* @tp_members@ */ binfield_pygetset, /* @tp_getset@ */ @@ -786,7 +785,7 @@ static PyTypeObject binfield_pytype_skel = { 0, /* @tp_init@ */ PyType_GenericAlloc, /* @tp_alloc@ */ abstract_pynew, /* @tp_new@ */ - _PyObject_Del, /* @tp_free@ */ + 0, /* @tp_free@ */ 0 /* @tp_is_gc@ */ }; @@ -816,7 +815,7 @@ static PyGetSetDef binpolyfield_pygetset[] = { }; static PyTypeObject binpolyfield_pytype_skel = { - PyObject_HEAD_INIT(&PyType_Type) 0, /* Header */ + PyObject_HEAD_INIT(0) 0, /* Header */ "catacomb.BinPolyField", /* @tp_name@ */ sizeof(field_pyobj), /* @tp_basicsize@ */ 0, /* @tp_itemsize@ */ @@ -847,7 +846,7 @@ static PyTypeObject binpolyfield_pytype_skel = { field_pyrichcompare, /* @tp_richcompare@ */ 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ - 0, /* @tp_iternexr@ */ + 0, /* @tp_iternext@ */ 0, /* @tp_methods@ */ 0, /* @tp_members@ */ binpolyfield_pygetset, /* @tp_getset@ */ @@ -859,7 +858,7 @@ static PyTypeObject binpolyfield_pytype_skel = { 0, /* @tp_init@ */ PyType_GenericAlloc, /* @tp_alloc@ */ binpolyfield_pynew, /* @tp_new@ */ - _PyObject_Del, /* @tp_free@ */ + 0, /* @tp_free@ */ 0 /* @tp_is_gc@ */ }; @@ -898,7 +897,7 @@ static PyGetSetDef binnormfield_pygetset[] = { }; static PyTypeObject binnormfield_pytype_skel = { - PyObject_HEAD_INIT(&PyType_Type) 0, /* Header */ + PyObject_HEAD_INIT(0) 0, /* Header */ "catacomb.BinNormField", /* @tp_name@ */ sizeof(field_pyobj), /* @tp_basicsize@ */ 0, /* @tp_itemsize@ */ @@ -929,7 +928,7 @@ static PyTypeObject binnormfield_pytype_skel = { field_pyrichcompare, /* @tp_richcompare@ */ 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ - 0, /* @tp_iternexr@ */ + 0, /* @tp_iternext@ */ 0, /* @tp_methods@ */ 0, /* @tp_members@ */ binnormfield_pygetset, /* @tp_getset@ */ @@ -941,7 +940,7 @@ static PyTypeObject binnormfield_pytype_skel = { 0, /* @tp_init@ */ PyType_GenericAlloc, /* @tp_alloc@ */ binnormfield_pynew, /* @tp_new@ */ - _PyObject_Del, /* @tp_free@ */ + 0, /* @tp_free@ */ 0 /* @tp_is_gc@ */ };