Index: Objects/typeobject.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Objects/typeobject.c,v retrieving revision 2.237 diff -c -r2.237 typeobject.c *** Objects/typeobject.c 13 Jun 2003 20:54:40 -0000 2.237 --- Objects/typeobject.c 20 Jun 2003 21:20:09 -0000 *************** *** 543,554 **** { int i, n; PyMemberDef *mp; n = type->ob_size; mp = PyHeapType_GET_MEMBERS((PyHeapTypeObject *)type); for (i = 0; i < n; i++, mp++) { if (mp->type == T_OBJECT_EX && !(mp->flags & READONLY)) { ! char *addr = (char *)self + mp->offset; PyObject *obj = *(PyObject **)addr; if (obj != NULL) { Py_DECREF(obj); --- 543,559 ---- { int i, n; PyMemberDef *mp; + char *slots_start = (char*)self; + + if (type->tp_itemsize > 0) + slots_start += type->tp_itemsize * + ((PyVarObject*)self)->ob_size; n = type->ob_size; mp = PyHeapType_GET_MEMBERS((PyHeapTypeObject *)type); for (i = 0; i < n; i++, mp++) { if (mp->type == T_OBJECT_EX && !(mp->flags & READONLY)) { ! char *addr = slots_start + mp->offset; PyObject *obj = *(PyObject **)addr; if (obj != NULL) { Py_DECREF(obj);