chiark / gitweb /
More fixing for modern Pythons. No longer works with 2.2. Sorry.
[catacomb-python] / field.c
diff --git a/field.c b/field.c
index aa071b27ae257673068713ffbb83080b123a8532..89fe8fbf2e26e01951542553f3f66bb955bb4571 100644 (file)
--- 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 = 0;
-  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);
 }