diff options
Diffstat (limited to 'Objects/odictobject.c')
-rw-r--r-- | Objects/odictobject.c | 41 |
1 files changed, 16 insertions, 25 deletions
diff --git a/Objects/odictobject.c b/Objects/odictobject.c index 1abdd02cdf..9af0b0eafa 100644 --- a/Objects/odictobject.c +++ b/Objects/odictobject.c @@ -1424,14 +1424,13 @@ static PyMethodDef odict_methods[] = { * OrderedDict members */ -/* tp_members */ +/* tp_getset */ -static PyMemberDef odict_members[] = { - {"__dict__", T_OBJECT, offsetof(PyODictObject, od_inst_dict), READONLY}, - {0} +static PyGetSetDef odict_getset[] = { + {"__dict__", PyObject_GenericGetDict, PyObject_GenericSetDict}, + {NULL} }; - /* ---------------------------------------------- * OrderedDict type slot methods */ @@ -1463,7 +1462,7 @@ odict_dealloc(PyODictObject *self) ++tstate->trash_delete_nesting; Py_TRASHCAN_SAFE_END(self) -}; +} /* tp_repr */ @@ -1540,7 +1539,7 @@ Done: Py_XDECREF(pieces); Py_ReprLeave((PyObject *)self); return result; -}; +} /* tp_doc */ @@ -1612,7 +1611,7 @@ odict_richcompare(PyObject *v, PyObject *w, int op) } else { Py_RETURN_NOTIMPLEMENTED; } -}; +} /* tp_iter */ @@ -1620,7 +1619,7 @@ static PyObject * odict_iter(PyODictObject *od) { return odictiter_new(od, _odict_ITER_KEYS); -}; +} /* tp_init */ @@ -1646,27 +1645,19 @@ odict_init(PyObject *self, PyObject *args, PyObject *kwds) Py_DECREF(res); return 0; } -}; +} /* tp_new */ static PyObject * odict_new(PyTypeObject *type, PyObject *args, PyObject *kwds) { - PyObject *dict; PyODictObject *od; - dict = PyDict_New(); - if (dict == NULL) - return NULL; - od = (PyODictObject *)PyDict_Type.tp_new(type, args, kwds); - if (od == NULL) { - Py_DECREF(dict); + if (od == NULL) return NULL; - } - od->od_inst_dict = dict; /* type constructor fills the memory with zeros (see PyType_GenericAlloc()), there is no need to set them to zero again */ if (_odict_resize(od) < 0) { @@ -1708,8 +1699,8 @@ PyTypeObject PyODict_Type = { (getiterfunc)odict_iter, /* tp_iter */ 0, /* tp_iternext */ odict_methods, /* tp_methods */ - odict_members, /* tp_members */ - 0, /* tp_getset */ + 0, /* tp_members */ + odict_getset, /* tp_getset */ &PyDict_Type, /* tp_base */ 0, /* tp_dict */ 0, /* tp_descr_get */ @@ -1729,7 +1720,7 @@ PyTypeObject PyODict_Type = { PyObject * PyODict_New(void) { return odict_new(&PyODict_Type, NULL, NULL); -}; +} static int _PyODict_SetItem_KnownHash(PyObject *od, PyObject *key, PyObject *value, @@ -1747,7 +1738,7 @@ _PyODict_SetItem_KnownHash(PyObject *od, PyObject *key, PyObject *value, } } return res; -}; +} int PyODict_SetItem(PyObject *od, PyObject *key, PyObject *value) @@ -1756,7 +1747,7 @@ PyODict_SetItem(PyObject *od, PyObject *key, PyObject *value) if (hash == -1) return -1; return _PyODict_SetItem_KnownHash(od, key, value, hash); -}; +} int PyODict_DelItem(PyObject *od, PyObject *key) @@ -1769,7 +1760,7 @@ PyODict_DelItem(PyObject *od, PyObject *key) if (res < 0) return -1; return _PyDict_DelItem_KnownHash(od, key, hash); -}; +} /* ------------------------------------------- |