[Python-checkins] python/dist/src/Doc/ext noddy.c,1.1,1.2
fdrake@sourceforge.net
fdrake@sourceforge.net
Fri, 12 Apr 2002 09:17:09 -0700
Update of /cvsroot/python/python/dist/src/Doc/ext
In directory usw-pr-cvs1:/tmp/cvs-serv3956/ext
Modified Files:
noddy.c
Log Message:
Modernize the minimal example of an extension type.
Index: noddy.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Doc/ext/noddy.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** noddy.c 28 Mar 2002 23:32:53 -0000 1.1
--- noddy.c 12 Apr 2002 16:17:06 -0000 1.2
***************
*** 5,8 ****
--- 5,9 ----
typedef struct {
PyObject_HEAD
+ /* Type-specific fields go here. */
} noddy_NoddyObject;
***************
*** 12,20 ****
noddy_NoddyObject* noddy;
- if (!PyArg_ParseTuple(args,":new_noddy"))
- return NULL;
-
noddy = PyObject_New(noddy_NoddyObject, &noddy_NoddyType);
return (PyObject*)noddy;
}
--- 13,20 ----
noddy_NoddyObject* noddy;
noddy = PyObject_New(noddy_NoddyObject, &noddy_NoddyType);
+ /* Initialize type-specific fields here. */
+
return (PyObject*)noddy;
}
***************
*** 23,30 ****
noddy_noddy_dealloc(PyObject* self)
{
PyObject_Del(self);
}
! static PyTypeObject noddy_NoddyType = {
PyObject_HEAD_INIT(NULL)
0,
--- 23,34 ----
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);
}
! statichere PyTypeObject noddy_NoddyType = {
PyObject_HEAD_INIT(NULL)
0,
***************
*** 45,51 ****
static PyMethodDef noddy_methods[] = {
! {"new_noddy", noddy_new_noddy, METH_VARARGS,
"Create a new Noddy object."},
! {NULL, NULL, 0, NULL}
};
--- 49,56 ----
static PyMethodDef noddy_methods[] = {
! {"new_noddy", noddy_new_noddy, METH_NOARGS,
"Create a new Noddy object."},
!
! {NULL} /* Sentinel */
};
***************
*** 54,58 ****
{
noddy_NoddyType.ob_type = &PyType_Type;
! Py_InitModule("noddy", noddy_methods);
}
--- 59,66 ----
{
noddy_NoddyType.ob_type = &PyType_Type;
+ if (PyType_Ready(&noddy_NoddyType))
+ return;
! Py_InitModule3("noddy", noddy_methods
! "Example module that creates an extension type.");
}