merge 3.5

This commit is contained in:
Benjamin Peterson 2015-06-06 23:20:40 -05:00
commit 4a931adef3
1 changed files with 61 additions and 62 deletions

View File

@ -2404,12 +2404,14 @@ mutablemapping_update(PyObject *self, PyObject *args, PyObject *kwargs)
/* first handle args, if any */
if (len < 0) /* PyObject_Size raised an exception. */
return NULL;
else if (len > 1) {
if (len > 1) {
char *msg = "update() takes at most 1 positional argument (%d given)";
PyErr_Format(PyExc_TypeError, msg, len);
return NULL;
}
else if (len == 1) {
PyObject *other = PyTuple_GET_ITEM(args, 0); /* borrowed reference */
if (other == NULL)
return NULL;
@ -2459,13 +2461,11 @@ mutablemapping_update(PyObject *self, PyObject *args, PyObject *kwargs)
if (res != 0)
return NULL;
}
}
/* now handle kwargs */
len = (kwargs != NULL) ? PyObject_Size(kwargs) : 0;
if (len < 0) /* PyObject_Size raised an exception. */
return NULL;
else if (len > 0) {
PyObject *items;
if (!PyMapping_Check(kwargs)) {
PyErr_SetString(PyExc_TypeError, "expected mapping for kwargs");
@ -2478,7 +2478,6 @@ mutablemapping_update(PyObject *self, PyObject *args, PyObject *kwargs)
Py_DECREF(items);
if (res == -1)
return NULL;
}
Py_RETURN_NONE;
}