Commit 29a6d449 authored by Raymond Hettinger's avatar Raymond Hettinger

Added comparison functions to dict proxies.

Now all non-mutating dict methods are in the proxy also.
Inspired by SF bug #602232,
parent f6894920
...@@ -718,6 +718,18 @@ proxy_traverse(PyObject *self, visitproc visit, void *arg) ...@@ -718,6 +718,18 @@ proxy_traverse(PyObject *self, visitproc visit, void *arg)
return 0; return 0;
} }
static int
proxy_compare(proxyobject *v, PyObject *w)
{
return PyObject_Compare(v->dict, w);
}
static PyObject *
proxy_richcompare(proxyobject *v, PyObject *w, int op)
{
return PyObject_RichCompare(v->dict, w, op);
}
static PyTypeObject proxytype = { static PyTypeObject proxytype = {
PyObject_HEAD_INIT(&PyType_Type) PyObject_HEAD_INIT(&PyType_Type)
0, /* ob_size */ 0, /* ob_size */
...@@ -729,7 +741,7 @@ static PyTypeObject proxytype = { ...@@ -729,7 +741,7 @@ static PyTypeObject proxytype = {
0, /* tp_print */ 0, /* tp_print */
0, /* tp_getattr */ 0, /* tp_getattr */
0, /* tp_setattr */ 0, /* tp_setattr */
0, /* tp_compare */ (cmpfunc)proxy_compare, /* tp_compare */
0, /* tp_repr */ 0, /* tp_repr */
0, /* tp_as_number */ 0, /* tp_as_number */
&proxy_as_sequence, /* tp_as_sequence */ &proxy_as_sequence, /* tp_as_sequence */
...@@ -744,7 +756,7 @@ static PyTypeObject proxytype = { ...@@ -744,7 +756,7 @@ static PyTypeObject proxytype = {
0, /* tp_doc */ 0, /* tp_doc */
proxy_traverse, /* tp_traverse */ proxy_traverse, /* tp_traverse */
0, /* tp_clear */ 0, /* tp_clear */
0, /* tp_richcompare */ (richcmpfunc)proxy_richcompare, /* tp_richcompare */
0, /* tp_weaklistoffset */ 0, /* tp_weaklistoffset */
(getiterfunc)proxy_getiter, /* tp_iter */ (getiterfunc)proxy_getiter, /* tp_iter */
0, /* tp_iternext */ 0, /* tp_iternext */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment