Issue #25410: Fixed a memory leak in OrderedDict in the case when key's hash
calculation fails.
diff --git a/Objects/odictobject.c b/Objects/odictobject.c
index 0044b32..a028884 100644
--- a/Objects/odictobject.c
+++ b/Objects/odictobject.c
@@ -648,11 +648,11 @@
     Py_ssize_t i;
     _ODictNode *node;
 
-    Py_INCREF(key);
     hash = PyObject_Hash(key);
     if (hash == -1)
         return -1;
 
+    Py_INCREF(key);
     i = _odict_get_index(od, key);
     if (i < 0) {
         if (!PyErr_Occurred())