summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/test/test_set.py3
-rw-r--r--Objects/dictobject.c4
2 files changed, 5 insertions, 2 deletions
diff --git a/Lib/test/test_set.py b/Lib/test/test_set.py
index e6e0ba6..f528ad8 100644
--- a/Lib/test/test_set.py
+++ b/Lib/test/test_set.py
@@ -293,6 +293,9 @@ class TestJointOps(unittest.TestCase):
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 06cc4a8..7d6ff61 100644
--- a/Objects/dictobject.c
+++ b/Objects/dictobject.c
@@ -1186,8 +1186,8 @@ dict_fromkeys(PyObject *cls, PyObject *args)
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;