summaryrefslogtreecommitdiffstats
path: root/Objects/setobject.c
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | Hoist constant expressions (so->table and so->mask) out of the inner-loop.Raymond Hettinger2015-12-141-12/+12
| | | |
* | | | Add assertion to verify the pre-condition in the comments.Raymond Hettinger2015-11-181-0/+1
| | | |
* | | | Issue #25629: Move set fill/used updates out of inner loopRaymond Hettinger2015-11-171-7/+8
| | | |
* | | | Move the active entry multiplication to later in the hash calculationRaymond Hettinger2015-08-071-4/+4
| | | |
* | | | Restore frozenset hash caching removed in cf707dd190a9Raymond Hettinger2015-08-071-0/+3
| | | |
* | | | Fix comment typoRaymond Hettinger2015-08-011-1/+1
| | | |
* | | | Tweak the commentsRaymond Hettinger2015-08-011-1/+3
| | | |
* | | | Issue #24762: Speed-up frozenset_hash() and greatly beef-up the comments.Raymond Hettinger2015-08-011-27/+43
| | | |
* | | | Issue #24681: Move the most likely test first in set_add_entry().Raymond Hettinger2015-07-311-6/+9
| | | |
* | | | Issue #24681: Move the store of so->table to the code block where it is used.Raymond Hettinger2015-07-231-7/+10
| | | |
* | | | Issue #24583: Consolidate previous set object updates into a single functionRaymond Hettinger2015-07-201-19/+20
| | | | | | | | | | | | | | | | | | | | | | | | with a single entry point, named exit points at the bottom, more self-evident refcount adjustments, and a comment describing why the pre-increment was necessary at all.
* | | | Issue #24583: Fix refcount leak.Raymond Hettinger2015-07-201-1/+5
| | | |
* | | | Issue #24583: Fix crash when set is mutated while being updated.Raymond Hettinger2015-07-161-5/+13
| | | |
* | | | mergeRaymond Hettinger2015-07-161-1/+2
|\ \ \ \ | |/ / /
| * | | 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`.
* | | | Neaten-up a little bit.Raymond Hettinger2015-07-081-3/+3
| | | |
* | | | Issue 24581: Revert c9782a9ac031 pending a stronger test for mutation during ↵Raymond Hettinger2015-07-071-13/+22
| | | | | | | | | | | | | | | | iteration.
* | | | Minor bit of factoring-out common code.Raymond Hettinger2015-07-071-18/+11
| | | |
* | | | Tighten-up code in the set iterator to use an entry pointer rather than ↵Raymond Hettinger2015-07-071-22/+13
| | | | | | | | | | | | | | | | indexing.
* | | | Tighten-up code in set_next() to use an entry pointer rather than indexing.Raymond Hettinger2015-07-061-5/+7
| | | |
* | | | Bring related functions add/contains/discard together in the code.Raymond Hettinger2015-07-051-40/+34
| | | |
* | | | Change add/contains/discard calls to pass the key and hash instead of an ↵Raymond Hettinger2015-07-051-52/+42
| | | | | | | | | | | | | | | | entry struct.
* | | | Clean-up call patterns for add/contains/discard to better match the caller's ↵Raymond Hettinger2015-07-051-36/+33
| | | | | | | | | | | | | | | | needs.
* | | | Make the unicode equality test an external function rather than in-lining it.Raymond Hettinger2015-07-041-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The real benefit of the unicode specialized function comes from bypassing the overhead of PyObject_RichCompareBool() and not from being in-lined (especially since there was almost no shared data between the caller and callee). Also, the in-lining was having a negative effect on code generation for the callee.
* | | | Make sure the dummy percentage calculation won't overflow.Raymond Hettinger2015-07-041-2/+2
| | | |
* | | | Minor cleanup.Raymond Hettinger2015-07-041-2/+2
| | | |
* | | | Minor nit: Make the style of checking error return values more consistent.Raymond Hettinger2015-07-041-16/+16
| | | |
* | | | Minor factoring: move redundant resize scaling logic into the resize function.Raymond Hettinger2015-07-041-4/+5
| | | |
* | | | Call set_lookkey() directly to avoid unnecessary memory spills and reloads.Raymond Hettinger2015-07-041-4/+5
| | | |
* | | | Move insertion resize logic into set_insert_key().Raymond Hettinger2015-07-041-45/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Simplifies the code a little bit and does the resize check only when a new key is added (giving a small speed up in the case where the key already exists). Fixes possible bug in set_merge() where the set_insert_key() call relies on a big resize at the start to make enough room for the keys but is vulnerable to a comparision callback that could cause the table to shrink in the middle of the merge. Also, changed the resize threshold from two-thirds of the mask+1 to just two-thirds. The plus one offset gave no real benefit (afterall, the two-thirds mark is just a heuristic and isn't a precise cut-off).
* | | | Minor refactoring. Move reference count logic into function that adds entry.Raymond Hettinger2015-06-281-14/+4
| | | |
* | | | Minor tweeak to tighten the inner-loop.Raymond Hettinger2015-06-261-1/+1
| | | |
* | | | Minor code cleanup.Raymond Hettinger2015-06-241-3/+5
| | | |
* | | | Harmonize the bottom of the outer loop with its entry pointRaymond Hettinger2015-06-211-2/+2
| | | | | | | | | | | | | | | | | | | | giving a small simplification. Timings show that hash pre-check seems only benefit the inner-loop (the linear probes).
* | | | Restore quick exit (no freeslot check) for common case (found null on first ↵Raymond Hettinger2015-06-211-1/+11
|/ / / | | | | | | | | | probe).
* | | 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).