summaryrefslogtreecommitdiffstats
path: root/Modules/_collectionsmodule.c
Commit message (Collapse)AuthorAgeFilesLines
* Code clean-up. Remove unnecessary pre-increment before the loop starts. (#3312)Raymond Hettinger2017-09-041-17/+10
|
* bpo-31095: fix potential crash during GC (GH-2974)INADA Naoki2017-08-241-0/+4
|
* bpo-29464: Rename METH_FASTCALL to METH_FASTCALL|METH_KEYWORDS and make (#1955)Serhiy Storchaka2017-07-031-15/+3
| | | | | the bare METH_FASTCALL be used for functions with positional-only parameters.
* bpo-29935: Fixed error messages in the index() method of tuple, list and ↵Serhiy Storchaka2017-03-301-2/+2
| | | | | deque (#887) when pass indices of wrong type.
* bpo-29878: Add global instances of int for 0 and 1. (#852)Serhiy Storchaka2017-03-301-16/+4
|
* bpo-29634: Reduce deque repeat execution when maxlen exist and size is not 1 ↵Louie Lu2017-02-241-0/+4
| | | | (#255) (#255)
* Optimize deque index, insert and rotate() methodsVictor Stinner2017-02-061-11/+29
| | | | | | | | | | | Issue #29452: Use METH_FASTCALL calling convention for index(), insert() and rotate() methods of collections.deque to avoid the creation a temporary tuple to pass position arguments. Speedup on deque methods: * d.rotate(): 1.10x faster * d.rotate(1): 1.24x faster * d.insert(): 1.18x faster * d.index(): 1.24x faster
* Fix typoRaymond Hettinger2017-01-131-1/+1
|
* Issue #28858: Remove _PyObject_CallArg1() macroVictor Stinner2016-12-051-1/+2
| | | | | | | | | | | Replace _PyObject_CallArg1(func, arg) with PyObject_CallFunctionObjArgs(func, arg, NULL) Using the _PyObject_CallArg1() macro increases the usage of the C stack, which was unexpected and unwanted. PyObject_CallFunctionObjArgs() doesn't have this issue.
* Replace PyObject_CallFunction() with fastcallVictor Stinner2016-12-011-1/+1
| | | | | | | | | | | | | | | | | Replace PyObject_CallFunction(func, "O", arg) and PyObject_CallFunction(func, "O", arg, NULL) with _PyObject_CallArg1(func, arg) Replace PyObject_CallFunction(func, NULL) with _PyObject_CallNoArg(func) _PyObject_CallNoArg() and _PyObject_CallArg1() are simpler and don't allocate memory on the C stack.
* Issue #28123: _PyDict_GetItem_KnownHash() now can raise an exception asSerhiy Storchaka2016-11-061-0/+2
| | | | PyDict_GetItemWithError(). Patch by Xiang Zhang.
* Revert part of 3471a3515827 that caused a performance regressionRaymond Hettinger2016-09-121-8/+44
|
* Avoid inefficient way to call functions without argumentVictor Stinner2016-09-061-1/+1
| | | | | | Don't pass "()" format to PyObject_CallXXX() to call a function without argument: pass NULL as the format string instead. It avoids to have to parse a string to produce 0 argument.
* - Modules/_collectionsmodule.c: Mark one more internal symbol as static.doko@ubuntu.com2016-06-141-1/+1
|
* - make some internal symbols staticdoko@ubuntu.com2016-05-171-1/+1
|
* Issue #26482: Allowed pickling recursive dequeues.Serhiy Storchaka2016-03-061-18/+18
|
* More logicial order. Move space saving step to just before it is used.Raymond Hettinger2016-03-041-14/+14
|
* Factor-out common subexpression.Raymond Hettinger2016-03-021-3/+3
|
* Put block length computations in a more logical order.Raymond Hettinger2016-03-021-2/+2
|
* Issue #26200: The SETREF macro adds unnecessary work in some cases.Raymond Hettinger2016-02-091-1/+4
|
* mergeRaymond Hettinger2016-02-021-5/+2
|
* mergeRaymond Hettinger2016-01-271-0/+7
|\
| * Issue #26194: Fix undefined behavior for deque.insert() when len(d) == maxlenRaymond Hettinger2016-01-271-0/+7
| |
* | Convert another post-decrement while-loop to pre-decrement for consistencyRaymond Hettinger2016-01-241-1/+2
| | | | | | | | and better generated code (on both GCC and CLang).
* | Convert two other post-decrement while-loops to pre-decrements for consistencyRaymond Hettinger2016-01-241-2/+4
| | | | | | | | and for better code generation.
* | Miscellaneous refactoringsRaymond Hettinger2016-01-241-65/+58
| | | | | | | | | | | | | | | | * Add comment to the maxlen structure entry about the meaning of maxlen == -1 * Factor-out code common to deque_append(left) and deque_extend(left) * Factor inner-loop in deque_clear() to use only 1 test per loop instead of 2 * Tighten inner-loops for deque_item() and deque_ass_item() so that the compiler can combine the decrement and test into a single step.
* | merge 3.5Benjamin Peterson2016-01-011-2/+0
|\ \ | |/
| * merge 3.4Benjamin Peterson2016-01-011-2/+0
| |\
| | * merge 3.3Benjamin Peterson2016-01-011-2/+0
| | |\
| | | * remove some copyright notices supserseded by the toplevel onesBenjamin Peterson2016-01-011-2/+0
| | | |
* | | | Issue #20440: Cleaning up the code by using Py_SETREF and Py_CLEAR.Serhiy Storchaka2015-12-271-4/+1
| | | | | | | | | | | | | | | | | | | | Old code is correct, but with Py_SETREF and Py_CLEAR it can be cleaner. This patch doesn't fix bugs and hence there is no need to backport it.
* | | | Issue #25421: __sizeof__ methods of builtin types now use dynamic basic size.Serhiy Storchaka2015-12-191-1/+1
|\ \ \ \ | |/ / / | | | | | | | | | | | | This allows sys.getsize() to work correctly with their subclasses with __slots__ defined.
| * | | Issue #25421: __sizeof__ methods of builtin types now use dynamic basic size.Serhiy Storchaka2015-12-191-1/+1
| | | | | | | | | | | | | | | | | | | | This allows sys.getsize() to work correctly with their subclasses with __slots__ defined.
* | | | Neaten-up the inner-loop logic.Raymond Hettinger2015-11-041-3/+3
| | | |
* | | | Minor cleanup.Raymond Hettinger2015-11-021-1/+1
| | | |
* | | | mergeRaymond Hettinger2015-11-021-1/+1
|\ \ \ \
| * \ \ \ Issue #25523: Merge a-to-an corrections from 3.5Martin Panter2015-11-021-1/+1
| |\ \ \ \ | | |/ / /
| | * | | Issue #25523: Further a-to-an corrections new in 3.5Martin Panter2015-11-021-1/+1
| | | | |
| | * | | Backport early-out 91259f061cfb to reduce the cost of bb1a2944bcb6Raymond Hettinger2015-10-071-1/+5
| | | | |
* | | | | Move the initial start-search out of the main loop so it can be factored-out ↵Raymond Hettinger2015-11-021-16/+27
|/ / / / | | | | | | | | | | | | later.
* | | | Removed unused parameterRaymond Hettinger2015-10-231-10/+10
| | | |
* | | | Only update the state variable once per iteration.Raymond Hettinger2015-10-201-4/+8
| | | |
* | | | Issue #25414: Remove unnecessary tests that can never succeed.Raymond Hettinger2015-10-171-15/+1
| | | |
* | | | Remove old Todo entry that isn't going to happen.Raymond Hettinger2015-10-161-6/+0
| | | |
* | | | Rewrap comment.Raymond Hettinger2015-10-151-4/+4
| | | |
* | | | Use unsigned divisionRaymond Hettinger2015-10-151-1/+1
| | | |
* | | | Improve variable names and constant expressionsRaymond Hettinger2015-10-151-9/+11
| | | |
* | | | Minor fixup. maxlen is already known.Raymond Hettinger2015-10-121-2/+2
| | | |
* | | | Refactor the deque trim logic to eliminate the two separate trim functions.Raymond Hettinger2015-10-121-25/+14
| | | |
* | | | Hoist the deque->maxlen lookup out of the inner-loop.Raymond Hettinger2015-10-111-6/+10
| | | |