230 Commits

Author SHA1 Message Date
Serhiy Storchaka
e63af29c87 [3.5] bpo-30061: Check if PyObject_Size()/PySequence_Size()/PyMapping_Size() (GH-1096) (GH-1180) (#1182)
raised an error.

(cherry picked from commit bf623ae884)
(cherry picked from commit 680fea4067)
2017-04-19 22:09:56 +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
Benjamin Peterson
4e3dd51396 merge 3.4 2016-01-01 11:56:16 -06:00
Benjamin Peterson
630329e4ea merge 3.3 2016-01-01 11:55:47 -06:00
Benjamin Peterson
0e617e22f0 remove some copyright notices supserseded by the toplevel ones 2016-01-01 11:53:47 -06:00
Serhiy Storchaka
5c4064e8bd 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:05:25 +02:00
Raymond Hettinger
a3626bc5bd Issue #24583: Fix crash when set is mutated while being updated. 2015-07-15 23:50:14 -07:00
Yury Selivanov
7aa5341164 Reverting my previous commit.
Something went horribly wrong when I was doing `hg rebase`.
2015-05-30 10:57:56 -04:00
Serhiy Storchaka
e90982111a Issue #24115: Update uses of PyObject_IsTrue(), PyObject_Not(),
PyObject_IsInstance(), PyObject_RichCompareBool() and _PyDict_Contains()
to check for and handle errors correctly.
2015-05-30 17:48:54 +03:00
Serhiy Storchaka
ac5569b1fa Issue #24115: Update uses of PyObject_IsTrue(), PyObject_Not(),
PyObject_IsInstance(), PyObject_RichCompareBool() and _PyDict_Contains()
to check for and handle errors correctly.
2015-05-30 17:48:19 +03:00
Serhiy Storchaka
fa494fd883 Issue #24115: Update uses of PyObject_IsTrue(), PyObject_Not(),
PyObject_IsInstance(), PyObject_RichCompareBool() and _PyDict_Contains()
to check for and handle errors correctly.
2015-05-30 17:45:22 +03:00
Raymond Hettinger
8651a50475 Issue #23359: Specialize set_lookkey intoa lookup function and an insert function. 2015-05-27 10:37:20 -07:00
Raymond Hettinger
5af9e13c18 Minor stylistic and consistency cleanup. 2015-05-13 01:44:36 -07:00
Raymond Hettinger
1bd8d75be3 Issue #23290: Optimize set_merge() for cases where the target is empty.
(Contributed by Serhiy Storchaka.)
2015-05-13 01:26:14 -07:00
Raymond Hettinger
438f9134cf Mirco-optimizations to reduce register spills and reloads observed on CLANG and GCC. 2015-02-09 06:48:29 -06:00
Raymond Hettinger
8249282622 Minor code clean up. 2015-02-04 08:37:02 -08:00
Raymond Hettinger
06bb1226d1 Issue 23359: Reduce size of code in set_lookkey. Only do linear probes when there is no wrap-around.
Nice simplification contributed by Serhiy Storchaka :-)
2015-02-03 08:15:30 -08:00
Raymond Hettinger
c658d85487 Issue 23359: Tighten inner search loop for sets (don't and-mask every entry lookup). 2015-02-02 08:35:00 -08:00
Raymond Hettinger
59ecabd12a Keep the definition of i consistent between set_lookkey() and set_insert_clean(). 2015-01-31 02:45:12 -08:00
Raymond Hettinger
9edd753229 Minor tweak to improve code clarity. 2015-01-30 20:09:23 -08:00
Raymond Hettinger
06a1c8dfa0 Fix typo in a comment. 2015-01-30 18:02:15 -08:00
Raymond Hettinger
f8d1a31e70 Revert unintended part of the commit (the key==dummy test wasn't supposed to change). 2015-01-26 22:06:43 -08:00
Raymond Hettinger
a5ebbf6295 Remove unneeded dummy test from the set search loop (when the hashes match we know the key is not a dummy). 2015-01-26 21:54:35 -08:00
Raymond Hettinger
3037e84ad1 Issue #23269: Tighten search_loop in set_insert_clean()
Instead of masking and shifting every loopup, move the wrap-around
test outside of the inner-loop.
2015-01-26 21:33:48 -08:00
Raymond Hettinger
b335dfe7fa Set the hash values of dummy entries to -1. Improves quality of entry->hash == hash tests. 2015-01-25 16:38:52 -08:00