Commit graph

200 commits

Author SHA1 Message Date
Raymond Hettinger
6b1e113f9f Hoist the deque->maxlen lookup out of the inner-loop. 2015-10-11 09:43:50 -07:00
Raymond Hettinger
a7f63009d6 Minor tweak. Make the maxlen comparisons a little more clear and consistent. 2015-10-10 23:56:02 -04:00
Raymond Hettinger
848f2b595d Backport early-out 91259f061cfb to reduce the cost of bb1a2944bcb6 2015-10-06 23:06:17 -04:00
Raymond Hettinger
0443ac2860 Eliminate unnecessary test 2015-10-05 22:52:37 -04:00
Raymond Hettinger
fd265f4a18 Factor out common iterator finalization code 2015-10-02 23:17:33 -07:00
Raymond Hettinger
0d30940dd2 Add fast paths to deque_init() for the common cases 2015-09-30 23:15:02 -07:00
Raymond Hettinger
38031143fb Add an early-out for deque_clear() 2015-09-29 22:45:05 -07:00
Raymond Hettinger
8299e9b59e Move the copy and clear functions upwards to eliminate unnecessary forward references. 2015-09-26 21:31:23 -07:00
Raymond Hettinger
7c0b70f419 Minor tweak to the order of variable updates. 2015-09-26 21:11:05 -07:00
Raymond Hettinger
f2b02ced7e Bump up the maximum number of freeblocks 2015-09-26 17:47:02 -07:00
Raymond Hettinger
c22eee6b59 Precomputing the number iterations allows the inner-loop to be vectorizable. 2015-09-26 02:14:50 -07:00
Raymond Hettinger
7a84552c84 Hoist constant expression out of an inner loop. 2015-09-26 01:30:51 -07:00
Raymond Hettinger
e055b88937 merge 2015-09-26 00:15:46 -07:00
Raymond Hettinger
bf49fee125 Issue #25135: Avoid possible reentrancy issues in deque_clear. 2015-09-26 00:14:59 -07:00
Raymond Hettinger
2b0d646b75 Replace an unpredictable branch with a simple addition. 2015-09-23 19:15:44 -07:00
Raymond Hettinger
3a1a8d0424 Eliminate unnecessary variables 2015-09-23 02:42:02 -07:00
Raymond Hettinger
7a237230d1 Eliminate unnecessary variable 2015-09-22 01:20:36 -07:00
Raymond Hettinger
d3d2b2c50c Minor consistency improvements to negative value comparisons. 2015-09-21 23:41:56 -07:00
Raymond Hettinger
aed8830af3 Add a fast path (no iterator creation) for a common case for repeating deques of size 1 2015-09-19 09:05:42 -07:00
Raymond Hettinger
0e14e6610b Hoist constant expression out of an inner loop 2015-09-19 00:21:33 -06:00
Raymond Hettinger
ad26225e1a Tighten inner-loop for deque_inplace_repeat(). 2015-09-14 01:03:04 -04:00
Raymond Hettinger
e4f3467df1 Add an exact type match fast path for deque_copy(). 2015-09-13 19:27:01 -04:00
Raymond Hettinger
95e2cc5d12 Fix refcount. 2015-09-13 02:41:18 -04:00
Raymond Hettinger
67c78b5421 In-line the append operations inside deque_inplace_repeat(). 2015-09-12 11:00:20 -04:00
Raymond Hettinger
f5d72f35e8 Simply deque repeat by reusing code in in-line repeat. Avoid unnecessary division. 2015-09-09 22:39:44 -04:00
Raymond Hettinger
318c5aef0e merge 2015-09-05 17:06:18 -07:00
Raymond Hettinger
2b2b75374e Prevent reentrant badness by deferring the decrefs as long as possible. 2015-09-05 17:05:52 -07:00
Raymond Hettinger
7a1a0bbbf1 merge 2015-08-26 08:09:50 -07:00
Raymond Hettinger
87674ec7d5 Issue #24913: Fix overrun error in deque.index(). 2015-08-26 08:08:38 -07:00
Raymond Hettinger
28c995d03b Minor cleanup. 2015-08-14 02:07:41 -07:00
Raymond Hettinger
12f896c521 Fix minor typo in a comment 2015-07-31 12:03:20 -07:00
Raymond Hettinger
aa23fa2e21 merge 2015-07-20 03:11:16 -04:00
Raymond Hettinger
043e800860 merge 2015-07-20 03:10:48 -04:00
Raymond Hettinger
239aba7874 Issue #19663: Improve error message for defaultdict. 2015-07-20 03:09:22 -04:00
Raymond Hettinger
cfe5b6ca04 Divisions-by-two for a positive Py_ssize_t compile more cleanly with >>1 than /2. 2015-07-20 00:25:50 -04:00
Eric Snow
96c6af9b20 Issue #16991: Add a C implementation of collections.OrderedDict. 2015-05-29 22:21:39 -06:00
Eric Snow
47db71756d Issue #16991: Add a C implementation of collections.OrderedDict. 2015-05-29 22:21:39 -06:00
Raymond Hettinger
c6249a6268 Defer deleted item decref until after the deque is restored to a consistent state. 2015-05-02 10:44:17 -07:00
Benjamin Peterson
1a6292194b fix refleak in deque_concat 2015-04-04 10:52:36 -04:00
Raymond Hettinger
41290a68ba Issue 23793: Add deque support for __add__(), __mul__(), and __imul__(). 2015-03-31 08:12:23 -07:00
Raymond Hettinger
fef9c1b368 Fix typo 2015-03-24 21:12:57 -07:00
Raymond Hettinger
8dbbae2e52 Minor code and comment cleanups. 2015-03-24 21:01:50 -07:00
Raymond Hettinger
551350a79f Improve and fix-up comments. 2015-03-24 00:19:53 -07:00
Raymond Hettinger
0f1451c8c0 Issue 23744: Minor speed-up for deque.__bool__(). 2015-03-23 23:23:55 -07:00
Raymond Hettinger
6921c13bbb Minor nit. Make the rotate() success/fail tests consistent. 2015-03-21 02:03:40 -07:00
Raymond Hettinger
ac13ad6a32 For safety, wait to decref deleted values until the deque state has been restored. 2015-03-21 01:53:16 -07:00
Raymond Hettinger
0f6f94778a Fix minor formatting nits and remove unnecessary comment. 2015-03-21 01:42:10 -07:00
Raymond Hettinger
32ea16577d Issue 23704: Add index(), copy(), and insert() to deques. Register deques as a MutableSequence. 2015-03-21 01:37:37 -07:00
Raymond Hettinger
39dadf7abf Issue 23705: Improve the performance of __contains__ checks for deques. 2015-03-20 16:38:56 -07:00
Raymond Hettinger
87e691240b Minor neatening-up. Make assignments in same order a struct fields. Line-up comments. 2015-03-02 23:32:02 -08:00