summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJim Fulton <jim@zope.com>2003-05-16 13:34:33 (GMT)
committerJim Fulton <jim@zope.com>2003-05-16 13:34:33 (GMT)
commit19472b2075aab1f001faf89f56e4b053f65e45f9 (patch)
tree6af842cb2b04779ea8d7878a31801a6185b8e93d
parentaea763bde758a127acfa1a2726e5c3966d238e27 (diff)
downloadcpython-19472b2075aab1f001faf89f56e4b053f65e45f9.zip
cpython-19472b2075aab1f001faf89f56e4b053f65e45f9.tar.gz
cpython-19472b2075aab1f001faf89f56e4b053f65e45f9.tar.bz2
Removed the out of date and no-longer-referenced xxobject.c example
type implementation. Note that this same example lives in Modules/xxmodule.c. (It is just as out of date there.)
-rw-r--r--Objects/xxobject.c108
1 files changed, 0 insertions, 108 deletions
diff --git a/Objects/xxobject.c b/Objects/xxobject.c
deleted file mode 100644
index 6bf4994..0000000
--- a/Objects/xxobject.c
+++ /dev/null
@@ -1,108 +0,0 @@
-
-/* Use this file as a template to start implementing a new object type.
- If your objects will be called foobar, start by copying this file to
- foobarobject.c, changing all occurrences of xx to foobar and all
- occurrences of Xx to Foobar. You will probably want to delete all
- references to 'x_attr' and add your own types of attributes
- instead. Maybe you want to name your local variables other than
- 'xp'. If your object type is needed in other files, you'll have to
- create a file "foobarobject.h"; see intobject.h for an example. */
-
-
-/* Xx objects */
-
-#include "Python.h"
-
-typedef struct {
- PyObject_HEAD
- PyObject *x_attr; /* Attributes dictionary */
-} xxobject;
-
-static PyTypeObject Xxtype;
-
-#define is_xxobject(v) ((v)->ob_type == &Xxtype)
-
-static xxobject *
-newxxobject(PyObject *arg)
-{
- xxobject *xp;
- xp = PyObject_New(xxobject, &Xxtype);
- if (xp == NULL)
- return NULL;
- xp->x_attr = NULL;
- return xp;
-}
-
-/* Xx methods */
-
-static void
-xx_dealloc(xxobject *xp)
-{
- Py_XDECREF(xp->x_attr);
- PyObject_Del(xp);
-}
-
-static PyObject *
-xx_demo(xxobject *self, PyObject *args)
-{
- if (!PyArg_ParseTuple(args, ":demo"))
- return NULL;
- Py_INCREF(Py_None);
- return Py_None;
-}
-
-static PyMethodDef xx_methods[] = {
- {"demo", (PyCFunction)xx_demo, METH_VARARGS},
- {NULL, NULL} /* sentinel */
-};
-
-static PyObject *
-xx_getattr(xxobject *xp, char *name)
-{
- if (xp->x_attr != NULL) {
- PyObject *v = PyDict_GetItemString(xp->x_attr, name);
- if (v != NULL) {
- Py_INCREF(v);
- return v;
- }
- }
- return Py_FindMethod(xx_methods, (PyObject *)xp, name);
-}
-
-static int
-xx_setattr(xxobject *xp, char *name, PyObject *v)
-{
- if (xp->x_attr == NULL) {
- xp->x_attr = PyDict_New();
- if (xp->x_attr == NULL)
- return -1;
- }
- if (v == NULL) {
- int rv = PyDict_DelItemString(xp->x_attr, name);
- if (rv < 0)
- PyErr_SetString(PyExc_AttributeError,
- "delete non-existing xx attribute");
- return rv;
- }
- else
- return PyDict_SetItemString(xp->x_attr, name, v);
-}
-
-static PyTypeObject Xxtype = {
- PyObject_HEAD_INIT(&PyType_Type)
- 0, /*ob_size*/
- "xx", /*tp_name*/
- sizeof(xxobject), /*tp_basicsize*/
- 0, /*tp_itemsize*/
- /* methods */
- (destructor)xx_dealloc, /*tp_dealloc*/
- 0, /*tp_print*/
- (getattrfunc)xx_getattr, /*tp_getattr*/
- (setattrfunc)xx_setattr, /*tp_setattr*/
- 0, /*tp_compare*/
- 0, /*tp_repr*/
- 0, /*tp_as_number*/
- 0, /*tp_as_sequence*/
- 0, /*tp_as_mapping*/
- 0, /*tp_hash*/
-};