Kaydet (Commit) 24bd5adc authored tarafından Petri Lehtinen's avatar Petri Lehtinen

Merge 3.2

...@@ -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