From d2eadc6946f676dd74707e1da93b61ecefc324c1 Mon Sep 17 00:00:00 2001 From: Jim Fulton Date: Mon, 12 May 2003 17:42:56 +0000 Subject: Updated simple example. This should have been checked in the other day, but I missfired in CVS. --- Doc/ext/noddy.c | 90 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/Doc/ext/noddy.c b/Doc/ext/noddy.c index 23f26ef..1988de69 100644 --- a/Doc/ext/noddy.c +++ b/Doc/ext/noddy.c @@ -1,66 +1,66 @@ #include -static PyTypeObject noddy_NoddyType; - typedef struct { PyObject_HEAD /* Type-specific fields go here. */ } noddy_NoddyObject; -static PyObject* -noddy_new_noddy(PyObject* self, PyObject* args) -{ - noddy_NoddyObject* noddy; - - noddy = PyObject_New(noddy_NoddyObject, &noddy_NoddyType); - - /* Initialize type-specific fields here. */ - - return (PyObject*)noddy; -} - -static void -noddy_noddy_dealloc(PyObject* self) -{ - /* Free any external resources here; - * if the instance owns references to any Python - * objects, call Py_DECREF() on them here. - */ - PyObject_Del(self); -} - static PyTypeObject noddy_NoddyType = { PyObject_HEAD_INIT(NULL) - 0, - "Noddy", - sizeof(noddy_NoddyObject), - 0, - noddy_noddy_dealloc, /*tp_dealloc*/ - 0, /*tp_print*/ - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - 0, /*tp_compare*/ - 0, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash */ + 0, /*ob_size*/ + "noddy.Noddy", /*tp_name*/ + sizeof(noddy_NoddyObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + 0, /*tp_dealloc*/ + 0, /*tp_print*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_compare*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash */ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT, /*tp_flags*/ + "Noddy objects", /* tp_doc */ + 0, /* tp_traverse */ + 0, /* tp_clear */ + 0, /* tp_richcompare */ + 0, /* tp_weaklistoffset */ + 0, /* tp_iter */ + 0, /* tp_iternext */ + 0, /* tp_methods */ + 0, /* tp_members */ + 0, /* tp_getset */ + 0, /* tp_base */ + 0, /* tp_dict */ + 0, /* tp_descr_get */ + 0, /* tp_descr_set */ + 0, /* tp_dictoffset */ + 0, /* tp_init */ + 0, /* tp_alloc */ + PyType_GenericNew, /* tp_new */ }; static PyMethodDef noddy_methods[] = { - {"new_noddy", noddy_new_noddy, METH_NOARGS, - "Create a new Noddy object."}, - {NULL} /* Sentinel */ }; PyMODINIT_FUNC initnoddy(void) { - noddy_NoddyType.ob_type = &PyType_Type; - if (PyType_Ready(&noddy_NoddyType)) + PyObject* m; + + if (PyType_Ready(&noddy_NoddyType) < 0) return; - Py_InitModule3("noddy", noddy_methods - "Example module that creates an extension type."); + m = Py_InitModule3("noddy", noddy_methods, + "Example module that creates an extension type."); + + PyModule_AddObject(m, "Noddy", (PyObject *)&noddy_NoddyType); } -- cgit v0.12