◐ Shell
clean mode source ↗

Message 289469 - Python tracker

Elliot, did you run the example in a release build or a debug build?  I'm wondering why this:

   assert(v->ob_type == w->ob_type &&
          v->ob_type->tp_richcompare != NULL &&
          v->ob_type->tp_richcompare == compare_funcs.key_richcompare);

didn't blow up (in `unsafe_object_compare`).

If that does blow up in a debug build, it suggests "a fix":  unconditionally check whether the tp_richcompare slot is the expected value.  If not, use `PyObject_RichCompareBool(v, w, Py_LT)` instead.