diff options
author | Raymond Hettinger <python@rcn.com> | 2016-01-27 05:46:03 (GMT) |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2016-01-27 05:46:03 (GMT) |
commit | 0ef0423cb2af178022991e9f3bfc276a2c3e1358 (patch) | |
tree | dce25256aa3199c9ecf63ecb5a5ba300f57a0a4c /Modules/_collectionsmodule.c | |
parent | be59d1489bdf150e05e67a89cc772628af7e8fd6 (diff) | |
parent | 3743432302e9b31d4fe0db31485543a306057fc8 (diff) | |
download | cpython-0ef0423cb2af178022991e9f3bfc276a2c3e1358.zip cpython-0ef0423cb2af178022991e9f3bfc276a2c3e1358.tar.gz cpython-0ef0423cb2af178022991e9f3bfc276a2c3e1358.tar.bz2 |
merge
Diffstat (limited to 'Modules/_collectionsmodule.c')
-rw-r--r-- | Modules/_collectionsmodule.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c index b77ea65..69acc64 100644 --- a/Modules/_collectionsmodule.c +++ b/Modules/_collectionsmodule.c @@ -1085,10 +1085,17 @@ deque_insert(dequeobject *deque, PyObject *args) Py_ssize_t index; Py_ssize_t n = Py_SIZE(deque); PyObject *value; + PyObject *oldvalue; PyObject *rv; if (!PyArg_ParseTuple(args, "nO:insert", &index, &value)) return NULL; + if (deque->maxlen == Py_SIZE(deque)) { + if (index >= deque->maxlen || Py_SIZE(deque) == 0) + Py_RETURN_NONE; + oldvalue = deque_pop(deque, NULL); + Py_DECREF(oldvalue); + } if (index >= n) return deque_append(deque, value); if (index <= -n || index == 0) |