Repair refcounting on error return from type_set_bases.
Include a test case that failed for one of my efforts to repair this.
diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py
index cb13ff2..b3336d1 100644
--- a/Lib/test/test_descr.py
+++ b/Lib/test/test_descr.py
@@ -3586,6 +3586,13 @@
raise TestFailed, "shouldn't be able to create inheritance cycles"
try:
+ D.__bases__ = (C, C)
+ except TypeError:
+ pass
+ else:
+ raise TestFailed, "didn't detect repeated base classes"
+
+ try:
D.__bases__ = (E,)
except TypeError:
pass