X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb-python/blobdiff_plain/3ed16ce3e1b50da2a4b18637d40775a52b3a2c74..1fae937d27b04ee48b15ae442ee7c46cc10511fd:/field.c diff --git a/field.c b/field.c index 1ff5ed2..fa424df 100644 --- a/field.c +++ b/field.c @@ -218,7 +218,7 @@ end: return (rc); } -static long fe_pyhash(PyObject *me) +static Py_hash_t fe_pyhash(PyObject *me) { return (mphash(FE_X(me))); } static int fe_pycoerce(PyObject **x, PyObject **y) @@ -393,8 +393,8 @@ static const PyNumberMethods fe_pynumber = { 0, /* @nb_inplace_true_divide@ */ }; -static PyTypeObject fe_pytype_skel = { - PyObject_HEAD_INIT(0) 0, /* Header */ +static const PyTypeObject fe_pytype_skel = { + PyVarObject_HEAD_INIT(0, 0) /* Header */ "FE", /* @tp_name@ */ sizeof(fe_pyobj), /* @tp_basicsize@ */ 0, /* @tp_itemsize@ */ @@ -512,7 +512,7 @@ static PyObject *fget_noctets(PyObject *me, void *hunoz) { return (PyInt_FromLong(FIELD_F(me)->noctets)); } static PyObject *fget_name(PyObject *me, void *hunoz) - { return (PyString_FromString(F_NAME(FIELD_F(me)))); } + { return (TEXT_FROMSTR(F_NAME(FIELD_F(me)))); } static PyObject *fget_type(PyObject *me, void *hunoz) { return (PyInt_FromLong(F_TYPE(FIELD_F(me)))); } @@ -539,8 +539,8 @@ static const PyMethodDef field_pymethods[] = { { 0 } }; -static PyTypeObject field_pytype_skel = { - PyObject_HEAD_INIT(0) 0, /* Header */ +static const PyTypeObject field_pytype_skel = { + PyVarObject_HEAD_INIT(0, 0) /* Header */ "Field", /* @tp_name@ */ sizeof(field_pyobj), /* @tp_basicsize@ */ 0, /* @tp_itemsize@ */ @@ -617,8 +617,8 @@ static const PyGetSetDef primefield_pygetset[] = { #undef GETSETNAME }; -static PyTypeObject primefield_pytype_skel = { - PyObject_HEAD_INIT(0) 0, /* Header */ +static const PyTypeObject primefield_pytype_skel = { + PyVarObject_HEAD_INIT(0, 0) /* Header */ "PrimeField", /* @tp_name@ */ sizeof(field_pyobj), /* @tp_basicsize@ */ 0, /* @tp_itemsize@ */ @@ -684,8 +684,8 @@ end: return (0); } -static PyTypeObject niceprimefield_pytype_skel = { - PyObject_HEAD_INIT(0) 0, /* Header */ +static const PyTypeObject niceprimefield_pytype_skel = { + PyVarObject_HEAD_INIT(0, 0) /* Header */ "NicePrimeField", /* @tp_name@ */ sizeof(field_pyobj), /* @tp_basicsize@ */ 0, /* @tp_itemsize@ */ @@ -748,8 +748,8 @@ static const PyGetSetDef binfield_pygetset[] = { { 0 } }; -static PyTypeObject binfield_pytype_skel = { - PyObject_HEAD_INIT(0) 0, /* Header */ +static const PyTypeObject binfield_pytype_skel = { + PyVarObject_HEAD_INIT(0, 0) /* Header */ "BinField", /* @tp_name@ */ sizeof(field_pyobj), /* @tp_basicsize@ */ 0, /* @tp_itemsize@ */ @@ -814,8 +814,8 @@ end: return (0); } -static PyTypeObject binpolyfield_pytype_skel = { - PyObject_HEAD_INIT(0) 0, /* Header */ +static const PyTypeObject binpolyfield_pytype_skel = { + PyVarObject_HEAD_INIT(0, 0) /* Header */ "BinPolyField", /* @tp_name@ */ sizeof(field_pyobj), /* @tp_basicsize@ */ 0, /* @tp_itemsize@ */ @@ -893,8 +893,8 @@ static const PyGetSetDef binnormfield_pygetset[] = { { 0 } }; -static PyTypeObject binnormfield_pytype_skel = { - PyObject_HEAD_INIT(0) 0, /* Header */ +static const PyTypeObject binnormfield_pytype_skel = { + PyVarObject_HEAD_INIT(0, 0) /* Header */ "BinNormField", /* @tp_name@ */ sizeof(field_pyobj), /* @tp_basicsize@ */ 0, /* @tp_itemsize@ */ @@ -943,6 +943,11 @@ static PyTypeObject binnormfield_pytype_skel = { /*----- Setup -------------------------------------------------------------*/ +static const struct nameval consts[] = { + CONST(FTY_PRIME), CONST(FTY_BINARY), + { 0 } +}; + void field_pyinit(void) { INITTYPE(fe, root); @@ -963,6 +968,7 @@ void field_pyinsert(PyObject *mod) INSERT("BinField", binfield_pytype); INSERT("BinPolyField", binpolyfield_pytype); INSERT("BinNormField", binnormfield_pytype); + setconstants(mod, consts); } /*----- That's all, folks -------------------------------------------------*/