From 6f97e493e1626d101c53472c239e28e3fae3b42a Mon Sep 17 00:00:00 2001
From: Tim Peters <tim.peters@gmail.com>
Date: Sun, 4 Nov 2001 23:09:40 +0000
Subject: long_true_divide():  decref its converted arguments. 
 test_long_future.py run in an infinite loop no longer grows.  Thanks to Neal
 Norwitz for determining that test leaked!

---
 Objects/longobject.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/Objects/longobject.c b/Objects/longobject.c
index 5141d53..899c940 100644
--- a/Objects/longobject.c
+++ b/Objects/longobject.c
@@ -1615,12 +1615,15 @@ long_true_divide(PyObject *v, PyObject *w)
 {
 	PyLongObject *a, *b;
 	double ad, bd;
-	int aexp, bexp;
+	int aexp, bexp, failed;
 
 	CONVERT_BINOP(v, w, &a, &b);
 	ad = _PyLong_AsScaledDouble((PyObject *)a, &aexp);
 	bd = _PyLong_AsScaledDouble((PyObject *)b, &bexp);
-	if ((ad == -1.0 || bd == -1.0) && PyErr_Occurred())
+	failed = (ad == -1.0 || bd == -1.0) && PyErr_Occurred();
+	Py_DECREF(a);
+	Py_DECREF(b);
+	if (failed)
 		return NULL;
 
 	if (bd == 0.0) {
-- 
cgit v0.12

