algorithms.c (gprp_pynew): Don't double-bump the new object's refcount.
authorMark Wooding <mdw@distorted.org.uk>
Sat, 25 Apr 2020 12:54:16 +0000 (13:54 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Sat, 25 Apr 2020 12:54:16 +0000 (13:54 +0100)
algorithms.c

index de8fcd6..ead615a 100644 (file)
@@ -3999,17 +3999,16 @@ static PyObject *gprp_pynew(PyTypeObject *ty, PyObject *arg, PyObject *kw)
   static const char *const kwlist[] = { "key", 0 };
   struct bin k;
   const prpinfo *prp = GCPRP_PRP(ty);
-  PyObject *me;
+  PyObject *rc = 0;
 
   if (!PyArg_ParseTupleAndKeywords(arg, kw, "O&:new", KWLIST, convbin, &k))
     goto end;
   if (keysz(k.sz, prp->keysz) != k.sz) VALERR("bad key length");
-  me = (PyObject *)ty->tp_alloc(ty, 0);
+  rc = (PyObject *)ty->tp_alloc(ty, 0);
   GPRP_PRP(me) = prp;
   prp->init(GPRP_CTX(me), k.p, k.sz);
-  RETURN_ME;
 end:
-  return (0);
+  return (rc);
 }
 
 static void gprp_pydealloc(PyObject *me)