key.c: Make `KeyDataStructured' constructor cleanup less bizarre.
[catacomb-python] / key.c
diff --git a/key.c b/key.c
index 5ad05a9..4f16183 100644 (file)
--- a/key.c
+++ b/key.c
@@ -1049,10 +1049,10 @@ static PyObject *keydatastruct_pynew(PyTypeObject *ty,
   }
   me = (keydata_pyobj *)ty->tp_alloc(ty, 0);
   me->gmops = &keydatastruct_gmops;
-  me->kd = kd;
+  me->kd = kd; kd = 0;
 end:
-  if (kd && !me) key_drop(kd);
   Py_XDECREF(name); Py_XDECREF(val); Py_XDECREF(it);
+  if (kd) key_drop(kd);
   return ((PyObject *)me);
 }