From fbcfd52a9ab413fdf4e2ffadde727cd378982de6 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Fri, 13 Dec 1996 02:57:25 +0000 Subject: [PATCH] Added the example "thin ice" from the extensions manual. --- Modules/xxmodule.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Modules/xxmodule.c b/Modules/xxmodule.c index e21ba9c8ee..465da68676 100644 --- a/Modules/xxmodule.c +++ b/Modules/xxmodule.c @@ -185,12 +185,36 @@ xx_new(self, args) return (PyObject *)rv; } +/* Example with subtle bug from extensions manual ("Thin Ice"). */ + +static PyObject * +xx_bug(self, args) + PyObject *self; + PyObject *args; +{ + PyObject *list, *item; + + if (!PyArg_ParseTuple(args, "O", &list)) + return NULL; + + item = PyList_GetItem(list, 0); + /* Py_INCREF(item); */ + PyList_SetItem(list, 1, PyInt_FromLong(0L)); + PyObject_Print(item, stdout, 0); + printf("\n"); + /* Py_DECREF(item); */ + + Py_INCREF(Py_None); + return Py_None; +} + /* List of functions defined in the module */ static PyMethodDef xx_methods[] = { {"foo", xx_foo, 1}, {"new", xx_new, 1}, + {"bug", xx_bug, 1}, {NULL, NULL} /* sentinel */ }; -- 2.50.1