summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2007-03-21 20:36:45 (GMT)
committerRaymond Hettinger <python@rcn.com>2007-03-21 20:36:45 (GMT)
commit7ed0a6583188e3fdfd8912f05a5219771c419cf1 (patch)
treedf6721bdc767ed51179775dc486b5e5a519c8295
parente1b4a7e1f90f879d194dd48dfef8a1c8a187faad (diff)
downloadcpython-7ed0a6583188e3fdfd8912f05a5219771c419cf1.zip
cpython-7ed0a6583188e3fdfd8912f05a5219771c419cf1.tar.gz
cpython-7ed0a6583188e3fdfd8912f05a5219771c419cf1.tar.bz2
Test and fix fromkeys optional argument.
-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 b46cac4..ef7cea7 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 acf5ae3..bc3cd53 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;