X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb-python/blobdiff_plain/618cbc92aa4274a62296cd6ed417d8597f50bd05..941a348351e409096689d4126214026eb2745d69:/key.c diff --git a/key.c b/key.c index 474b659..0707edc 100644 --- a/key.c +++ b/key.c @@ -1299,6 +1299,21 @@ static void key_pydealloc(PyObject *me) FREEOBJ(me); } +static Py_hash_t key_pyhash(PyObject *me) + { return ((Py_hash_t)KEY_K(me)); } + +static PyObject *key_pyrichcompare(PyObject *me, PyObject *you, int op) +{ + if (!KEY_PYCHECK(you)) RETURN_NOTIMPL; + switch (op) { + case Py_EQ: return (getbool(KEY_K(me) == KEY_K(you))); + case Py_NE: return (getbool(KEY_K(me) == KEY_K(you))); + default: TYERR("ordering makes no sense"); + } +end: + return (0); +} + static PyObject *kmeth_delete(PyObject *me) { int err; @@ -1521,7 +1536,7 @@ static const PyTypeObject key_pytype_skel = { 0, /* @tp_as_number@ */ 0, /* @tp_as_sequence@ */ 0, /* @tp_as_mapping@ */ - 0, /* @tp_hash@ */ + key_pyhash, /* @tp_hash@ */ 0, /* @tp_call@ */ 0, /* @tp_str@ */ 0, /* @tp_getattro@ */ @@ -1535,7 +1550,7 @@ static const PyTypeObject key_pytype_skel = { 0, /* @tp_traverse@ */ 0, /* @tp_clear@ */ - 0, /* @tp_richcompare@ */ + key_pyrichcompare, /* @tp_richcompare@ */ 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ 0, /* @tp_iternext@ */