Test and fix fromkeys optional argument.
diff --git a/Lib/test/test_set.py b/Lib/test/test_set.py
index b46cac4..ef7cea7 100644
--- a/Lib/test/test_set.py
+++ b/Lib/test/test_set.py
@@ -293,6 +293,9 @@
self.assertEqual(sum(elem.hash_count for elem in d), n)
d3 = dict.fromkeys(frozenset(d))
self.assertEqual(sum(elem.hash_count for elem in d), n)
+ d3 = dict.fromkeys(frozenset(d), 123)
+ self.assertEqual(sum(elem.hash_count for elem in d), n)
+ self.assertEqual(d3, dict.fromkeys(d, 123))
class TestSet(TestJointOps):
thetype = set
diff --git a/Objects/dictobject.c b/Objects/dictobject.c
index acf5ae3..bc3cd53 100644
--- a/Objects/dictobject.c
+++ b/Objects/dictobject.c
@@ -1186,8 +1186,8 @@
while (_PySet_NextEntry(seq, &pos, &key, &hash)) {
Py_INCREF(key);
- Py_INCREF(Py_None);
- if (insertdict(mp, key, hash, Py_None))
+ Py_INCREF(value);
+ if (insertdict(mp, key, hash, value))
return NULL;
}
return d;