INADA Naoki
4cde4bdcc8
bpo-31095: Fix potential crash during GC (GH-3197)
...
(cherry picked from commit a6296d34a4
)
2017-09-04 12:31:41 +09:00
Benjamin Peterson
f30bad284b
remove some copyright notices supserseded by the toplevel ones
2016-01-01 11:53:47 -06:00
Serhiy Storchaka
c06a6d0958
Issue #25421 : __sizeof__ methods of builtin types now use dynamic basic size.
...
This allows sys.getsize() to work correctly with their subclasses with
__slots__ defined.
2015-12-19 20:07:48 +02:00
Raymond Hettinger
f358d2b244
Second instance of deque needing "len" instead of "Py_SIZE" in Py2.7
2015-11-12 18:20:21 -08:00
Raymond Hettinger
3a75403880
Deque uses "len" instead of varhead in Py2.7
2015-11-12 07:18:45 -08:00
Raymond Hettinger
e904427285
Backport early-out 91259f061cfb to reduce the cost of bb1a2944bcb6
2015-10-06 23:12:02 -04:00
Raymond Hettinger
d2a4073db2
Issue #25135 : Avoid possible reentrancy issues in deque_clear.
2015-09-26 00:52:57 -07:00
Raymond Hettinger
fe13eac341
Issue #19663 : Improve error message for defaultdict.
2015-07-20 03:08:09 -04:00
Benjamin Peterson
5863a39603
deque is not varsized, so using Py_SIZE is nonsensical ( closes #24162 )
2015-05-15 12:19:18 -04:00
Raymond Hettinger
79f2c5b8e0
Defer deleted item decref until after the deque is restored to a consistent state.
2015-05-02 10:53:27 -07:00
Benjamin Peterson
06e486c2d3
correct defaultdict signature in docstring ( closes #20250 )
...
Patch from Andrew Barnert.
2014-01-13 23:56:05 -05:00
Raymond Hettinger
662908b5e5
Restore the data block size to 62.
...
The former block size traded away good fit within cache lines in
order to gain faster division in deque_item(). However, compilers
are getting smarter and can now replace the slow division operation
with a fast integer multiply and right shift. Accordingly, it makes
sense to go back to a size that lets blocks neatly fill entire
cache-lines.
GCC-4.8 and CLANG 4.0 both compute "x // 62" with something
roughly equivalent to "x * 9520900167075897609 >> 69".
2013-07-28 02:34:42 -07:00
Raymond Hettinger
b77ed2c54b
Backport c952f3d122ae: Tweak the deque struct by moving the least used fields
...
(maxlen and weakref) to the end.
2013-07-16 02:34:19 -07:00
Raymond Hettinger
90180c1c3f
Move the leftlink to the end of the block structure.
...
The current pattern of memory access will update both the leftlink and
rightlink at the same time, so they should be positioned side-by-side
for better cache locality.
Keeping the leftlink at the front of the structure would make sense
only if the paired updates were eliminated by backporting changesets
49a9c734304d, 3555cc0ca35b, ae9ee46bd471, and 744dd749e25b. However,
that isn't likely to happen, so we're better off with the leftlink at
the end of the structure.
2013-07-16 01:59:30 -07:00
Benjamin Peterson
73d6aca5d2
reapply f1dc30a1be72
2013-06-25 11:35:44 -07:00
Benjamin Peterson
227f0faed2
reapply 5accb0ac8bfb
2013-06-25 11:34:48 -07:00
Benjamin Peterson
3968e29959
reapply f1dc30a1be72
2013-06-25 11:26:20 -07:00
Benjamin Peterson
13dd1f947e
reapply f1dc30a1be72
2013-06-25 11:25:26 -07:00
Benjamin Peterson
478b08ee5a
also backout f1dc30a1be72 for not being a bugfix
2013-06-23 11:38:11 -07:00
Benjamin Peterson
10c74d28e4
backout 5accb0ac8bfb; needs more discussion on python-dev
2013-06-22 11:16:36 -07:00
Raymond Hettinger
22b4b4cef4
Arrange structure to match the common access patterns.
2013-06-22 00:51:01 -07:00
Raymond Hettinger
03512c18cb
Fix comment blocks. Adjust blocksize to a power-of-two for better divmod computations.
2013-06-14 01:06:33 -04:00
Raymond Hettinger
6688bdbe77
Minor cleanups.
2013-02-09 18:55:44 -05:00
Raymond Hettinger
426453282c
Issue 16398: Use memcpy() in deque.rotate().
2013-02-02 10:23:37 -08:00
Benjamin Peterson
40056de9f5
make deque_clear void, since it's infallible
2013-01-12 21:22:18 -05:00
Raymond Hettinger
2cdb6435d6
Issue #16398 : Optimize deque.rotate()
2013-01-12 00:05:00 -08:00
Andrew Svetlov
227f59b29c
Fix docstring for deque ctor to mark iterable parameter optional
2012-10-31 11:50:00 +02:00
Jesus Cea
d4e58dc966
Closes #15469 : Correct __sizeof__ support for deque
2012-08-03 14:48:23 +02:00
Antoine Pitrou
c39cd783fb
Issue #13015 : Fix a possible reference leak in defaultdict.__repr__.
...
Patch by Suman Saha.
2012-02-15 02:42:46 +01:00
Raymond Hettinger
db9d64b367
Issue 11713: clarify docstring for collections.deque()
2011-03-29 17:28:25 -07:00
Raymond Hettinger
57a8689b55
Issue 11004: Fix edge case for deque.count().
2011-01-25 21:43:29 +00:00
Antoine Pitrou
c83ea137d7
Untabify C files. Will watch buildbots.
2010-05-09 14:46:46 +00:00
Raymond Hettinger
5f516edd77
Add count() method to collections.deque().
2010-04-03 18:10:37 +00:00
Raymond Hettinger
a5fd24e97d
Add a reverse() method to collections.deque().
2009-12-10 06:42:54 +00:00
Raymond Hettinger
0b3263b073
Fix variants of deque.extend: d.extend(d) d+=d d.extendleft(d)
2009-12-10 06:00:33 +00:00
Raymond Hettinger
8fdab95260
Issue 6637: defaultdict.copy() failed with an empty factory.
2009-08-04 19:08:05 +00:00
Raymond Hettinger
56411aac79
For collections.deque() objects, expose the maxlen parameter as a read-only attribute.
2009-03-10 12:50:59 +00:00
Raymond Hettinger
bac769bb5e
Small optimization for corner case where maxlen==0.
2009-03-10 09:31:48 +00:00
Amaury Forgeot d'Arc
57eb0e90c1
#4801 _collections module fails to build on cygwin.
...
_PyObject_GC_TRACK is the macro version of PyObject_GC_Track,
and according to documentation it should not be used for extension modules.
2009-01-02 00:03:54 +00:00
Antoine Pitrou
aa687902f2
Issue #3680 : Reference cycles created through a dict, set or deque iterator did not get collected.
2009-01-01 14:11:22 +00:00
Amaury Forgeot d'Arc
05e344954d
#3743 : PY_FORMAT_SIZE_T is designed for the OS "printf" functions, not for
...
PyString_FromFormat which has an independent implementation, and uses "%zd".
This makes a difference on win64, where printf needs "%Id" to display
64bit values. For example, queue.__repr__ was incorrect.
Reviewed by Martin von Loewis.
2008-09-10 22:04:45 +00:00
Christian Heimes
94a730540a
d is the correct format string
2008-08-22 21:23:47 +00:00
Christian Heimes
1cc69636ef
Fixed two format strings in the _collections module. For example
...
Modules/_collectionsmodule.c:674: warning: format '%i' expects type 'int', but argument 2 has type 'Py_ssize_t'
Reviewed by Benjamin Peterson
2008-08-22 20:10:27 +00:00
Raymond Hettinger
723ba3049a
Parse to the correct datatype.
2008-07-24 00:53:49 +00:00
Raymond Hettinger
33fcf9db74
Finish-up the partial conversion from int to Py_ssize_t for deque indices and length.
2008-07-24 00:08:18 +00:00
Nick Coghlan
53663a695e
Issue 2235: __hash__ is once again inherited by default, but inheritance can be blocked explicitly so that collections.Hashable remains meaningful
2008-07-15 14:27:37 +00:00
Martin v. Löwis
111c180674
Make more symbols static.
2008-06-13 07:47:47 +00:00
Gregory P. Smith
dd96db63f6
This reverts r63675 based on the discussion in this thread:
...
http://mail.python.org/pipermail/python-dev/2008-June/079988.html
Python 2.6 should stick with PyString_* in its codebase. The PyBytes_* names
in the spirit of 3.0 are available via a #define only. See the email thread.
2008-06-09 04:58:54 +00:00
Christian Heimes
593daf545b
Renamed PyString to PyBytes
2008-05-26 12:51:38 +00:00
Raymond Hettinger
a37430a0ce
dict.copy() rises from the ashes. Revert r60687.
2008-02-12 19:05:36 +00:00