Kaydet (Commit) e4f3467d authored tarafından Raymond Hettinger's avatar Raymond Hettinger

Add an exact type match fast path for deque_copy().

üst ba5747b8
......@@ -1205,6 +1205,22 @@ deque_traverse(dequeobject *deque, visitproc visit, void *arg)
static PyObject *
deque_copy(PyObject *deque)
{
if (Py_TYPE(deque) == &deque_type) {
dequeobject *new_deque;
PyObject *rv;
new_deque = (dequeobject *)deque_new(&deque_type, (PyObject *)NULL, (PyObject *)NULL);
if (new_deque == NULL)
return NULL;
new_deque->maxlen = ((dequeobject *)deque)->maxlen;
rv = deque_extend(new_deque, deque);
if (rv != NULL) {
Py_DECREF(rv);
return (PyObject *)new_deque;
}
Py_DECREF(new_deque);
return NULL;
}
if (((dequeobject *)deque)->maxlen == -1)
return PyObject_CallFunction((PyObject *)(Py_TYPE(deque)), "O", deque, NULL);
else
......
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