Commit Graph

221 Commits

Author SHA1 Message Date
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
Raymond Hettinger
4d45c1069b Update out-of-date comments. 2015-01-25 16:27:40 -08:00
Raymond Hettinger
93035c44fd Issue #23119: Simplify setobject by inlining the special case for unicode equality testing. 2015-01-25 16:12:49 -08:00
Raymond Hettinger
ed741d4ff0 A hybrid of and-masking and a conditional-set-to-zero produce even faster search loop. 2015-01-18 21:25:15 -08:00
Raymond Hettinger
bd9b200b87 Update copyright for 2015 updates. 2015-01-18 16:10:30 -08:00
Raymond Hettinger
9cd6a789c6 Clean-up, simplify, and slightly speed-up bounds logic in set_pop().
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.
2015-01-18 16:06:18 -08:00
Raymond Hettinger
1202a4733e Issue 23261: Clean-up the hack to store the set.pop() search finger in a hash field instead of the setobject. 2015-01-18 13:12:42 -08:00
Raymond Hettinger
8edf27c134 Small clean-up. Factor-out common code for add, contains, and discard function pairs. 2014-12-26 23:08:58 -08:00
Raymond Hettinger
08e3dc0ad6 Issue #23107: Tighten-up loops in setobject.c
* 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
2014-12-26 20:14:00 -08:00