Brandt Bucher
60463e8e4f
bpo-42536: GC track recycled tuples (GH-23623) (GH-23651)
...
Several built-in and standard library types now ensure that their internal result tuples are always tracked by the garbage collector:
- collections.OrderedDict.items
- dict.items
- enumerate
- functools.reduce
- itertools.combinations
- itertools.combinations_with_replacement
- itertools.permutations
- itertools.product
- itertools.zip_longest
- zip
Previously, they could have become untracked by a prior garbage collection.
(cherry picked from commit 226a012d1c
)
2020-12-07 20:07:48 +00:00
Dong-hee Na
785f5e6d67
bpo-40489: Add test case for dict contain use after free (GH-19906)
2020-05-05 02:30:42 +09:00
Brandt Bucher
eb8ac57af2
bpo-36144: Dictionary Union (PEP 584) ( #12088 )
2020-02-24 19:47:34 -08:00
Dong-hee Na
2d5bf568ea
bpo-38588: Fix possible crashes in dict and list when calling PyObject_RichCompareBool (GH-17734)
...
Take strong references before calling PyObject_RichCompareBool to protect against the case
where the object dies during the call.
2019-12-31 01:04:22 +00:00
Dong-hee Na
24dc2f8c56
bpo-38525: Fix a segmentation fault when using reverse iterators of empty dict (GH-16846)
...
The reverse iterator for empty dictionaries was not handling correctly shared-key dictionaries.
2019-10-19 21:01:08 +01:00
Thomas Perl
b8311cf5e5
bpo-36473: add maximum iteration check for dict .values() and .items() (GH-12619)
2019-04-02 18:30:10 +09:00
Thomas Perl
796cc6e3ad
bpo-36452: dictiter: track maximum iteration count (GH-12596)
2019-03-28 15:03:25 +09:00
Zackery Spytz
d1cbc6f8a0
Include the highest pickle protocol in a couple of tests. (GH-10735)
...
test_reduce_ex() in test_array.py and
test_reversevaluesiterator_pickling() in test_dict.py weren't using
the highest pickle protocol.
2018-11-27 07:40:49 +02:00
Rémi Lapeyre
6531bf6309
bpo-33462: Add __reversed__ to dict and dict views (GH-6827)
2018-11-06 09:38:54 +09:00
INADA Naoki
2aaf98c16a
bpo-34320: Fix dict(o) didn't copy order of dict subclass (GH-8624)
...
When dict subclass overrides order (`__iter__()`, `keys()`, and `items()`), `dict(o)`
should use it instead of dict ordering.
https://bugs.python.org/issue34320
2018-09-25 20:59:00 -07:00
Sergey Fedoseev
1f36bf6077
Test dict values iterator pickling with pickle.HIGHEST_PROTOCOL. (GH-9052)
2018-09-10 17:42:09 +08:00
Yury Selivanov
b0a7a037b8
bpo-31179: Make dict.copy() up to 5.5 times faster. ( #3067 )
2018-01-22 11:54:41 -05:00
Serhiy Storchaka
1fb72d2ad2
bpo-32137: The repr of deeply nested dict now raises a RecursionError ( #4570 )
...
instead of crashing due to a stack overflow.
This perhaps will fix similar problems in other extension types.
2017-12-03 22:12:11 +02:00
Serhiy Storchaka
753bca3934
bpo-27945: Fixed various segfaults with dict. ( #1657 )
...
Based on patches by Duane Griffin and Tim Mitchell.
2017-05-20 12:30:02 +03:00
Victor Stinner
3d3f264849
Fix a memory leak in split-table dictionaries
...
Issue #28147 : Fix a memory leak in split-table dictionaries: setattr() must not
convert combined table into split table.
Patch written by INADA Naoki.
2016-12-15 17:21:23 +01:00
Serhiy Storchaka
f0b311bd73
Issue #28123 : _PyDict_GetItem_KnownHash() now can raise an exception as
...
PyDict_GetItemWithError(). Patch by Xiang Zhang.
2016-11-06 13:18:24 +02:00
INADA Naoki
93f26f794d
Issue #28583 : PyDict_SetDefault didn't combine split table when needed.
...
Patch by Xiang Zhang.
2016-11-02 18:45:16 +09:00
Victor Stinner
d0ad11f6b4
Fix _PyDict_Pop() on pending key
...
Issue #28120 : Fix dict.pop() for splitted dictionary when trying to remove a
"pending key" (Not yet inserted in split-table).
Patch by Xiang Zhang.
2016-09-13 16:56:38 +02:00
Victor Stinner
78601a38c2
Fix SystemError in compact dict
...
Issue #28040 : Fix _PyDict_DelItem_KnownHash() and _PyDict_Pop(): convert
splitted table to combined table to be able to delete the item.
Write an unit test for the issue.
Patch by INADA Naoki.
2016-09-09 19:28:36 -07:00
Martin Panter
e514093a2f
Issue #27125 : Merge typo fixes from 3.5
2016-05-30 05:24:49 +00:00
Martin Panter
a90a4a9651
Issue #27125 : Remove duplicated words from documentation and comments
2016-05-30 04:04:50 +00:00
Serhiy Storchaka
ab479c49d3
Issue #26494 : Fixed crash on iterating exhausting iterators.
...
Affected classes are generic sequence iterators, iterators of str, bytes,
bytearray, list, tuple, set, frozenset, dict, OrderedDict, corresponding
views and os.scandir() iterator.
2016-03-30 20:41:15 +03:00
Serhiy Storchaka
fbb1c5ee06
Issue #26494 : Fixed crash on iterating exhausting iterators.
...
Affected classes are generic sequence iterators, iterators of str, bytes,
bytearray, list, tuple, set, frozenset, dict, OrderedDict, corresponding
views and os.scandir() iterator.
2016-03-30 20:40:02 +03:00
Victor Stinner
5ebe2c89fe
Cleanup test_dict
...
* Write one import per line
* Sort imports by name
* Add an empty line: 2 empty lines between code blocks at the module level (PEP 8)
2016-01-23 13:52:05 +01:00
Serhiy Storchaka
a84f6c3dd3
Issue #25523 : Merge a-to-an corrections from 3.4.
2015-11-02 14:39:05 +02:00
Serhiy Storchaka
d65c9496da
Issue #25523 : Further a-to-an corrections.
2015-11-02 14:10:23 +02:00
Benjamin Peterson
e54d5321cc
merge 3.4 ( #24407 )
2015-07-04 19:59:24 -05:00
Benjamin Peterson
2a48a6eb33
merge 3.3 ( #24407 )
2015-07-04 19:58:11 -05:00
Benjamin Peterson
a82f77fb00
protect against mutation of the dict during insertion ( closes #24407 )
2015-07-04 19:55:16 -05:00
Zachary Ware
38c707e7e0
Issue #21741 : Update 147 test modules to use test discovery.
...
I have compared output between pre- and post-patch runs of these tests
to make sure there's nothing missing and nothing broken, on both
Windows and Linux. The only differences I found were actually tests
that were previously *not* run.
2015-04-13 15:00:43 -05:00
Serhiy Storchaka
bad1257c96
Issue #22777 : Test pickling with all protocols.
2014-12-15 14:03:42 +02:00
Antoine Pitrou
d696732025
Issue #22653 : Fix an assertion failure in debug mode when doing a reentrant dict insertion in debug mode.
2014-10-18 00:35:00 +02:00
Ezio Melotti
4e1f3d669b
#19166 : use an unused var in a test. Patch by Vajrasky Kok.
2013-10-05 03:07:03 +03:00
Benjamin Peterson
d97eb0d338
merge 3.2 ( #16345 )
2012-10-31 14:09:11 -04:00
Benjamin Peterson
d1f2cb37a2
only fast-path fromkeys() when the constructor returns a empty dict ( closes #16345 )
2012-10-31 14:05:55 -04:00
Antoine Pitrou
9a2349030a
Issue #14417 : Mutating a dict during lookup now restarts the lookup instead of raising a RuntimeError (undoes issue #14205 ).
2012-05-13 20:48:01 +02:00
Benjamin Peterson
15ee821eb5
distiguish between refusing to creating shared keys and error ( #13903 )
2012-04-24 14:44:18 -04:00
Benjamin Peterson
db780d0d13
fix instance dicts with str subclasses ( #13903 )
2012-04-23 13:44:32 -04:00
Benjamin Peterson
7d95e40721
Implement PEP 412: Key-sharing dictionaries ( closes #13903 )
...
Patch from Mark Shannon.
2012-04-23 11:24:50 -04:00
Kristján Valur Jónsson
31668b8f7a
Issue #14288 : Serialization support for builtin iterators.
2012-04-03 10:49:41 +00:00
Victor Stinner
28393828e2
Issue #14205 : Fix test_dict.test_mutating_lookup()
2012-03-09 22:58:51 +01:00
Victor Stinner
198b291df7
Close #14205 : dict lookup raises a RuntimeError if the dict is modified during
...
a lookup.
"if you want to make a sandbox on top of CPython, you have to fix segfaults"
so let's fix segfaults!
2012-03-06 01:03:13 +01:00
Antoine Pitrou
e965d97ed1
Issue #13521 : dict.setdefault() now does only one lookup for the given key, making it "atomic" for many purposes.
...
Patch by Filip Gruszczyński.
2012-02-27 00:45:12 +01:00
Benjamin Peterson
f609654b0e
handle dict subclasses gracefully in PyArg_ValidateKeywordArguments
2010-11-17 22:33:12 +00:00
Alexander Belopolsky
3b87ccad91
Reverted inadvertent change from r86095
2010-11-01 17:52:57 +00:00
Alexander Belopolsky
ea13d9d86b
Issue #10199 : Moved Demo/turtle under Lib/
2010-11-01 17:39:37 +00:00
Benjamin Peterson
3e5cd1d04e
Merged revisions 81465-81466,81468,81679,81735,81760,81868,82183 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/trunk
........
r81465 | georg.brandl | 2010-05-22 06:29:19 -0500 (Sat, 22 May 2010) | 2 lines
Issue #3924 : Ignore cookies with invalid "version" field in cookielib.
........
r81466 | georg.brandl | 2010-05-22 06:31:16 -0500 (Sat, 22 May 2010) | 1 line
Underscore the name of an internal utility function.
........
r81468 | georg.brandl | 2010-05-22 06:43:25 -0500 (Sat, 22 May 2010) | 1 line
#8635 : document enumerate() start parameter in docstring.
........
r81679 | benjamin.peterson | 2010-06-03 16:21:03 -0500 (Thu, 03 Jun 2010) | 1 line
use a set for membership testing
........
r81735 | michael.foord | 2010-06-05 06:46:59 -0500 (Sat, 05 Jun 2010) | 1 line
Extract error message truncating into a method (unittest.TestCase._truncateMessage).
........
r81760 | michael.foord | 2010-06-05 14:38:42 -0500 (Sat, 05 Jun 2010) | 1 line
Issue 8302. SkipTest exception is setUpClass or setUpModule is now reported as a skip rather than an error.
........
r81868 | benjamin.peterson | 2010-06-09 14:45:04 -0500 (Wed, 09 Jun 2010) | 1 line
fix code formatting
........
r82183 | benjamin.peterson | 2010-06-23 15:29:26 -0500 (Wed, 23 Jun 2010) | 1 line
cpython only gc tests
........
2010-06-27 21:45:24 +00:00
Benjamin Peterson
fb88636199
prevent the dict constructor from accepting non-string keyword args #8419
...
This adds PyArg_ValidateKeywordArguments, which checks that keyword arguments
are all strings, using an optimized method if possible.
2010-04-24 18:21:17 +00:00
Florent Xicluna
a988e42205
Recorded merge of revisions 78582 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/trunk
........
r78582 | florent.xicluna | 2010-03-02 17:00:00 +0100 (mar, 02 mar 2010) | 2 lines
Refactor test_dict using assertRaises.
........
2010-03-02 16:06:24 +00:00
Ezio Melotti
e96159335f
Merged revisions 77727 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/trunk
........
r77727 | ezio.melotti | 2010-01-24 18:58:36 +0200 (Sun, 24 Jan 2010) | 1 line
use assert[Not]IsInstance where appropriate
........
2010-01-24 19:26:24 +00:00