Fix memory leak found by valgrind.
diff --git a/Lib/test/test_exceptions.py b/Lib/test/test_exceptions.py
index 8bd385a..84d2798 100644
--- a/Lib/test/test_exceptions.py
+++ b/Lib/test/test_exceptions.py
@@ -265,7 +265,9 @@
if (e is not exc and # needed for sampleUnicode errors
type(e) is not exc):
raise
- for checkArgName in expected.keys():
+ # Verify no ref leaks in Exc_str()
+ s = str(e)
+ for checkArgName in expected:
self.assertEquals(repr(getattr(e, checkArgName)),
repr(expected[checkArgName]),
'exception "%s", attribute "%s"' %
@@ -273,7 +275,7 @@
# test for pickling support
new = pickle.loads(pickle.dumps(e, random.randint(0, 2)))
- for checkArgName in expected.keys():
+ for checkArgName in expected:
self.assertEquals(repr(getattr(e, checkArgName)),
repr(expected[checkArgName]),
'pickled exception "%s", attribute "%s' %
diff --git a/Objects/exceptions.c b/Objects/exceptions.c
index acc7da5..3b79307 100644
--- a/Objects/exceptions.c
+++ b/Objects/exceptions.c
@@ -619,7 +619,6 @@
PyTuple_SET_ITEM(tuple, 1, Py_None);
}
- Py_INCREF(repr);
PyTuple_SET_ITEM(tuple, 2, repr);
rtnval = PyString_Format(fmt, tuple);