Commit 24bd5adc authored by Petri Lehtinen's avatar Petri Lehtinen

Merge 3.2

parents 36645681 a94200e6
...@@ -10,6 +10,9 @@ What's New in Python 3.3 Alpha 1? ...@@ -10,6 +10,9 @@ What's New in Python 3.3 Alpha 1?
Core and Builtins Core and Builtins
----------------- -----------------
- Issue #13018: Fix reference leaks in error paths in dictobject.c.
Patch by Suman Saha.
- Issue #13201: Define '==' and '!=' to compare range objects based on - Issue #13201: Define '==' and '!=' to compare range objects based on
the sequence of values they define (instead of comparing based on the sequence of values they define (instead of comparing based on
object identity). object identity).
......
...@@ -1314,14 +1314,18 @@ dict_fromkeys(PyObject *cls, PyObject *args) ...@@ -1314,14 +1314,18 @@ dict_fromkeys(PyObject *cls, PyObject *args)
PyObject *key; PyObject *key;
Py_hash_t hash; Py_hash_t hash;
if (dictresize(mp, Py_SIZE(seq))) if (dictresize(mp, Py_SIZE(seq))) {
Py_DECREF(d);
return NULL; return NULL;
}
while (_PyDict_Next(seq, &pos, &key, &oldvalue, &hash)) { while (_PyDict_Next(seq, &pos, &key, &oldvalue, &hash)) {
Py_INCREF(key); Py_INCREF(key);
Py_INCREF(value); Py_INCREF(value);
if (insertdict(mp, key, hash, value)) if (insertdict(mp, key, hash, value)) {
Py_DECREF(d);
return NULL; return NULL;
}
} }
return d; return d;
} }
...@@ -1332,14 +1336,18 @@ dict_fromkeys(PyObject *cls, PyObject *args) ...@@ -1332,14 +1336,18 @@ dict_fromkeys(PyObject *cls, PyObject *args)
PyObject *key; PyObject *key;
Py_hash_t hash; Py_hash_t hash;
if (dictresize(mp, PySet_GET_SIZE(seq))) if (dictresize(mp, PySet_GET_SIZE(seq))) {
Py_DECREF(d);
return NULL; return NULL;
}
while (_PySet_NextEntry(seq, &pos, &key, &hash)) { while (_PySet_NextEntry(seq, &pos, &key, &hash)) {
Py_INCREF(key); Py_INCREF(key);
Py_INCREF(value); Py_INCREF(value);
if (insertdict(mp, key, hash, value)) if (insertdict(mp, key, hash, value)) {
Py_DECREF(d);
return NULL; return NULL;
}
} }
return d; return d;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment