summaryrefslogtreecommitdiffstats
path: root/Objects/setobject.c
Commit message (Collapse)AuthorAgeFilesLines
* bpo-31095: fix potential crash during GC (GH-2974) (#3196)INADA Naoki2017-09-261-0/+3
| | | (cherry picked from commit a6296d34a478b4f697ea9db798146195075d496c)
* [3.5] bpo-30061: Check if PyObject_Size()/PySequence_Size()/PyMapping_Size() ↵Serhiy Storchaka2017-04-191-3/+9
| | | | | | | | | (GH-1096) (GH-1180) (#1182) raised an error. (cherry picked from commit bf623ae8843dc30b28c574bec8d29fc14be59d86) (cherry picked from commit 680fea4067537a9b9c79aadd44a3a19e83cd2dbf)
* Issue #26494: Fixed crash on iterating exhausting iterators.Serhiy Storchaka2016-03-301-1/+1
| | | | | | Affected classes are generic sequence iterators, iterators of str, bytes, bytearray, list, tuple, set, frozenset, dict, OrderedDict, corresponding views and os.scandir() iterator.
* merge 3.4Benjamin Peterson2016-01-011-3/+0
|\
| * merge 3.3Benjamin Peterson2016-01-011-3/+0
| |\
| | * remove some copyright notices supserseded by the toplevel onesBenjamin Peterson2016-01-011-3/+0
| | |
| | * Silence compiler warning for an unused declarationRaymond Hettinger2013-08-041-1/+0
| | |
* | | 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 #24583: Fix crash when set is mutated while being updated.Raymond Hettinger2015-07-161-1/+2
| | |
* | | Reverting my previous commit.Yury Selivanov2015-05-301-104/+41
| | | | | | | | | | | | Something went horribly wrong when I was doing `hg rebase`.
* | | Issue #24115: Update uses of PyObject_IsTrue(), PyObject_Not(),Serhiy Storchaka2015-05-301-4/+13
|\ \ \ | | | | | | | | | | | | | | | | PyObject_IsInstance(), PyObject_RichCompareBool() and _PyDict_Contains() to check for and handle errors correctly.
| * \ \ Issue #24115: Update uses of PyObject_IsTrue(), PyObject_Not(),Serhiy Storchaka2015-05-301-4/+13
| |\ \ \ | | |/ / | | | | | | | | | | | | PyObject_IsInstance(), PyObject_RichCompareBool() and _PyDict_Contains() to check for and handle errors correctly.
| | * | Issue #24115: Update uses of PyObject_IsTrue(), PyObject_Not(),Serhiy Storchaka2015-05-301-4/+13
| | | | | | | | | | | | | | | | | | | | PyObject_IsInstance(), PyObject_RichCompareBool() and _PyDict_Contains() to check for and handle errors correctly.
* | | | Issue #23359: Specialize set_lookkey intoa lookup function and an insert ↵Raymond Hettinger2015-05-271-41/+104
|/ / / | | | | | | | | | function.
* | | Minor stylistic and consistency cleanup.Raymond Hettinger2015-05-131-19/+19
| | |
* | | Issue #23290: Optimize set_merge() for cases where the target is empty.Raymond Hettinger2015-05-131-10/+40
| | | | | | | | | | | | (Contributed by Serhiy Storchaka.)
* | | Mirco-optimizations to reduce register spills and reloads observed on CLANG ↵Raymond Hettinger2015-02-091-2/+4
| | | | | | | | | | | | and GCC.
* | | Minor code clean up.Raymond Hettinger2015-02-041-2/+2
| | |
* | | Issue 23359: Reduce size of code in set_lookkey. Only do linear probes when ↵Raymond Hettinger2015-02-031-33/+0
| | | | | | | | | | | | | | | | | | there is no wrap-around. Nice simplification contributed by Serhiy Storchaka :-)
* | | Issue 23359: Tighten inner search loop for sets (don't and-mask every entry ↵Raymond Hettinger2015-02-021-24/+53
| | | | | | | | | | | | lookup).
* | | Keep the definition of i consistent between set_lookkey() and ↵Raymond Hettinger2015-01-311-4/+4
| | | | | | | | | | | | set_insert_clean().
* | | Minor tweak to improve code clarity.Raymond Hettinger2015-01-311-1/+1
| | |
* | | Fix typo in a comment.Raymond Hettinger2015-01-311-1/+1
| | |
* | | Revert unintended part of the commit (the key==dummy test wasn't supposed to ↵Raymond Hettinger2015-01-271-6/+2
| | | | | | | | | | | | change).
* | | Remove unneeded dummy test from the set search loop (when the hashes match ↵Raymond Hettinger2015-01-271-4/+11
| | | | | | | | | | | | we know the key is not a dummy).
* | | Issue #23269: Tighten search_loop in set_insert_clean()Raymond Hettinger2015-01-271-6/+17
| | | | | | | | | | | | | | | Instead of masking and shifting every loopup, move the wrap-around test outside of the inner-loop.
* | | Set the hash values of dummy entries to -1. Improves quality of entry->hash ↵Raymond Hettinger2015-01-261-0/+2
| | | | | | | | | | | | == hash tests.
* | | Update out-of-date comments.Raymond Hettinger2015-01-261-5/+3
| | |
* | | Issue #23119: Simplify setobject by inlining the special case for unicode ↵Raymond Hettinger2015-01-261-70/+11
| | | | | | | | | | | | equality testing.
* | | A hybrid of and-masking and a conditional-set-to-zero produce even faster ↵Raymond Hettinger2015-01-191-1/+2
| | | | | | | | | | | | search loop.
* | | Update copyright for 2015 updates.Raymond Hettinger2015-01-191-1/+1
| | |
* | | Clean-up, simplify, and slightly speed-up bounds logic in set_pop().Raymond Hettinger2015-01-191-10/+3
| | | | | | | | | | | | | | | | | | | | | Elsewhere in the setobject.c code we do a bitwise-and with the mask instead of using a conditional to reset to zero on wrap-around. Using that same technique here use gives cleaner, faster, and more consistent code.
* | | Issue 23261: Clean-up the hack to store the set.pop() search finger in a ↵Raymond Hettinger2015-01-181-21/+12
| | | | | | | | | | | | hash field instead of the setobject.
* | | Small clean-up. Factor-out common code for add, contains, and discard ↵Raymond Hettinger2014-12-271-43/+27
| | | | | | | | | | | | function pairs.
* | | Issue #23107: Tighten-up loops in setobject.cRaymond Hettinger2014-12-271-55/+46
| | | | | | | | | | | | | | | | | | * Move the test for an exact key match to after a hash match * Use "used" as a loop counter instead of "fill" * Minor improvements to variable names and code consistency
* | | Issue #22156: Fix "comparison between signed and unsigned integers" compilerVictor Stinner2014-08-151-1/+1
| | | | | | | | | | | | | | | | | | | | | warnings in the Objects/ subdirectory. PyType_FromSpecWithBases() and PyType_FromSpec() now reject explicitly negative slot identifiers.
* | | Add development comments to setobject.cRaymond Hettinger2014-05-181-8/+15
|/ /
* | Fix typo in comment.Eric V. Smith2014-01-141-1/+1
| |
* | Add comments to frozenset_hash().Raymond Hettinger2014-01-051-1/+14
| | | | | | | | Also, provide a minor hint to the compiler on how to group the xors.
* | Minor code clean-up. Keep the C-API all in one section.Raymond Hettinger2013-12-151-3/+3
| |
* | Note that LINEAR_PROBES can be set to zero.Raymond Hettinger2013-09-221-1/+1
| |
* | Minor beautification. Put updates and declarations in a more logical order.Raymond Hettinger2013-09-211-2/+2
| |
* | When LINEAR_PROBES=0, let the compiler remove the dead code on its own.Raymond Hettinger2013-09-211-12/+0
| |
* | Make the linear probe sequence clearer.Raymond Hettinger2013-09-211-8/+4
| |
* | Issue 18771: Make it possible to set the number linear probes at compile-time.Raymond Hettinger2013-09-151-5/+19
| |
* | Put the defines in the logical section and fix indentation.Raymond Hettinger2013-09-081-8/+8
| |
* | Minor code beautification.Raymond Hettinger2013-09-081-6/+5
| |
* | Improve code clarity by removing two unattractive macros.Raymond Hettinger2013-09-081-16/+18
| |
* | Remove the freelist scheme for setobjects.Raymond Hettinger2013-09-081-47/+8
| | | | | | | | | | | | | | | | | | The setobject freelist was consuming memory but not providing much value. Even when a freelisted setobject was available, most of the setobject fields still needed to be initialized and the small table still required a memset(). This meant that the custom freelisting scheme for sets was providing almost no incremental benefit over the default Python freelist scheme used by _PyObject_Malloc() in Objects/obmalloc.c.
* | Small rearrangement to bring together the three functions for probing the ↵Raymond Hettinger2013-09-081-32/+39
| | | | | | | | hash table.