]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
bpo-40602: Optimize _Py_hashtable for pointer keys (GH-20051)
authorVictor Stinner <vstinner@python.org>
Tue, 12 May 2020 11:31:59 +0000 (13:31 +0200)
committerGitHub <noreply@github.com>
Tue, 12 May 2020 11:31:59 +0000 (13:31 +0200)
commit7c6e97077525f0ad3cfa0971028313b9079449fd
treec97302b548f2ff97e4a275cf004e116b5c1b91df
parent74ea6b5a7501fb393cd567fb21998d0bfeeb267c
bpo-40602: Optimize _Py_hashtable for pointer keys (GH-20051)

Optimize _Py_hashtable_get() and _Py_hashtable_get_entry() for
pointer keys:

* key_size == sizeof(void*)
* hash_func == _Py_hashtable_hash_ptr
* compare_func == _Py_hashtable_compare_direct

Changes:

* Add get_func and get_entry_func members to _Py_hashtable_t
* Convert _Py_hashtable_get() and _Py_hashtable_get_entry() functions
  to static nline functions.
* Add specialized get and get entry for pointer keys.
Include/internal/pycore_hashtable.h
Python/hashtable.c