Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								4148195c45 
								
							 
						 
						
							
							
								
								Move the active entry multiplication to later in the hash calculation  
							
							
							
						 
						
							2015-08-07 00:43:39 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								b501a27ad8 
								
							 
						 
						
							
							
								
								Restore frozenset hash caching removed in cf707dd190a9  
							
							
							
						 
						
							2015-08-06 22:15:22 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								a286a51ae1 
								
							 
						 
						
							
							
								
								Fix comment typo  
							
							
							
						 
						
							2015-08-01 11:07:11 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								36c0500990 
								
							 
						 
						
							
							
								
								Tweak the comments  
							
							
							
						 
						
							2015-08-01 10:57:42 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								fbffdef47d 
								
							 
						 
						
							
							
								
								Issue  #24762 :  Speed-up frozenset_hash() and greatly beef-up the comments.  
							
							
							
						 
						
							2015-08-01 09:53:00 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								daffc916aa 
								
							 
						 
						
							
							
								
								Issue  #24681 :  Move the most likely test first in set_add_entry().  
							
							
							
						 
						
							2015-07-31 07:58:56 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								70559b5c20 
								
							 
						 
						
							
							
								
								Issue  #24681 :  Move the store of so->table to the code block where it is used.  
							
							
							
						 
						
							2015-07-23 07:42:23 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								ff9e18a863 
								
							 
						 
						
							
							
								
								Issue  #24583 :  Consolidate previous set object updates into a single function  
							
							... 
							
							
							
							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. 
							
						 
						
							2015-07-20 07:34:05 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								482c05cbb5 
								
							 
						 
						
							
							
								
								Issue  #24583 : Fix refcount leak.  
							
							
							
						 
						
							2015-07-20 01:23:32 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								061091a7c5 
								
							 
						 
						
							
							
								
								Issue  #24583 : Fix crash when set is mutated while being updated.  
							
							
							
						 
						
							2015-07-15 23:54:02 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								d702044bcd 
								
							 
						 
						
							
							
								
								merge  
							
							
							
						 
						
							2015-07-15 23:52:29 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								a3626bc5bd 
								
							 
						 
						
							
							
								
								Issue  #24583 : Fix crash when set is mutated while being updated.  
							
							
							
						 
						
							2015-07-15 23:50:14 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								5d2385ff6f 
								
							 
						 
						
							
							
								
								Neaten-up a little bit.  
							
							
							
						 
						
							2015-07-08 11:52:27 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								9632a7d735 
								
							 
						 
						
							
							
								
								Issue 24581: Revert c9782a9ac031 pending a stronger test for mutation during iteration.  
							
							
							
						 
						
							2015-07-07 15:29:24 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								11ce8e6c37 
								
							 
						 
						
							
							
								
								Minor bit of factoring-out common code.  
							
							
							
						 
						
							2015-07-06 19:08:49 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								3dbc11cadd 
								
							 
						 
						
							
							
								
								Tighten-up code in the set iterator to use an entry pointer rather than indexing.  
							
							
							
						 
						
							2015-07-06 19:03:01 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								ef6bd7d963 
								
							 
						 
						
							
							
								
								Tighten-up code in set_next() to use an entry pointer rather than indexing.  
							
							
							
						 
						
							2015-07-06 08:43:37 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								b48d6a63ff 
								
							 
						 
						
							
							
								
								Bring related functions add/contains/discard together in the code.  
							
							
							
						 
						
							2015-07-05 16:27:44 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								73799b181e 
								
							 
						 
						
							
							
								
								Change add/contains/discard calls to pass the key and hash instead of an entry struct.  
							
							
							
						 
						
							2015-07-05 16:06:10 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								dc28d5a198 
								
							 
						 
						
							
							
								
								Clean-up call patterns for add/contains/discard to better match the caller's needs.  
							
							
							
						 
						
							2015-07-05 10:03:20 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								ac2ef65c32 
								
							 
						 
						
							
							
								
								Make the unicode equality test an external function rather than in-lining it.  
							
							... 
							
							
							
							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. 
							
						 
						
							2015-07-04 16:04:44 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								e186c7674c 
								
							 
						 
						
							
							
								
								Make sure the dummy percentage calculation won't overflow.  
							
							
							
						 
						
							2015-07-04 11:28:35 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								c2480dc0c4 
								
							 
						 
						
							
							
								
								Minor cleanup.  
							
							
							
						 
						
							2015-07-04 08:46:31 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								b322326f48 
								
							 
						 
						
							
							
								
								Minor nit:  Make the style of checking error return values more consistent.  
							
							
							
						 
						
							2015-07-03 23:37:16 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								4897300276 
								
							 
						 
						
							
							
								
								Minor factoring:  move redundant resize scaling logic into the resize function.  
							
							
							
						 
						
							2015-07-03 20:00:03 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								3c1f52e829 
								
							 
						 
						
							
							
								
								Call set_lookkey() directly to avoid unnecessary memory spills and reloads.  
							
							
							
						 
						
							2015-07-03 18:31:09 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								15f0869609 
								
							 
						 
						
							
							
								
								Move insertion resize logic into set_insert_key().  
							
							... 
							
							
							
							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). 
							
						 
						
							2015-07-03 17:21:17 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								2eff9e9441 
								
							 
						 
						
							
							
								
								Minor refactoring.  Move reference count logic into function that adds entry.  
							
							
							
						 
						
							2015-06-27 22:03:35 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								91672617d5 
								
							 
						 
						
							
							
								
								Minor tweeak to tighten the inner-loop.  
							
							
							
						 
						
							2015-06-26 02:50:21 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								38bb95e49d 
								
							 
						 
						
							
							
								
								Minor code cleanup.  
							
							
							
						 
						
							2015-06-24 01:22:19 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								7e3592dca6 
								
							 
						 
						
							
							
								
								Harmonize the bottom of the outer loop with its entry point  
							
							... 
							
							
							
							giving a small simplification.  Timings show that hash
pre-check seems only benefit the inner-loop (the linear probes). 
							
						 
						
							2015-06-21 10:47:20 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Raymond Hettinger 
								
							 
						 
						
							
							
							
							
								
							
							
								6ee588f14e 
								
							 
						 
						
							
							
								
								Restore quick exit (no freeslot check) for common case (found null on first probe).  
							
							
							
						 
						
							2015-06-20 21:39:51 -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