bpo-44553: Correct failure in tp_new for the union object (GH-27008) (GH-27009)
(cherry picked from commit bc3961485639cc73de7c4c7eed1b56f3c74939bf)
Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
diff --git a/Objects/unionobject.c b/Objects/unionobject.c
index cc7181d..8435763 100644
--- a/Objects/unionobject.c
+++ b/Objects/unionobject.c
@@ -490,10 +490,10 @@ _Py_Union(PyObject *args)
}
result->args = dedup_and_flatten_args(args);
+ _PyObject_GC_TRACK(result);
if (result->args == NULL) {
- PyObject_GC_Del(result);
+ Py_DECREF(result);
return NULL;
}
- _PyObject_GC_TRACK(result);
return (PyObject*)result;
}