mirror of
https://github.com/python/cpython.git
synced 2025-08-31 14:07:50 +00:00
Issue #26588:
* _Py_HASHTABLE_ENTRY_DATA: change type from "char *" to "const void *" * Add _Py_HASHTABLE_ENTRY_WRITE_PKEY() macro * Rename _Py_HASHTABLE_ENTRY_WRITE_DATA() macro to _Py_HASHTABLE_ENTRY_WRITE_PDATA() * Add _Py_HASHTABLE_ENTRY_WRITE_DATA() macro
This commit is contained in:
parent
42bcf37fcf
commit
e8c6b2fd1b
4 changed files with 29 additions and 12 deletions
|
@ -287,7 +287,7 @@ _Py_hashtable_pop_entry(_Py_hashtable_t *ht, size_t key_size, const void *pkey,
|
|||
ht->entries--;
|
||||
|
||||
if (data != NULL)
|
||||
_Py_HASHTABLE_ENTRY_READ_DATA(ht, entry, data_size, data);
|
||||
_Py_HASHTABLE_ENTRY_READ_PDATA(ht, entry, data_size, data);
|
||||
ht->alloc.free(entry);
|
||||
|
||||
if ((float)ht->entries / (float)ht->num_buckets < HASHTABLE_LOW)
|
||||
|
@ -325,10 +325,8 @@ _Py_hashtable_set(_Py_hashtable_t *ht, size_t key_size, const void *pkey,
|
|||
}
|
||||
|
||||
entry->key_hash = key_hash;
|
||||
memcpy((void *)_Py_HASHTABLE_ENTRY_KEY(entry), pkey, key_size);
|
||||
|
||||
assert(data_size == ht->data_size);
|
||||
memcpy(_Py_HASHTABLE_ENTRY_DATA(ht, entry), data, data_size);
|
||||
_Py_HASHTABLE_ENTRY_WRITE_PKEY(key_size, entry, pkey);
|
||||
_Py_HASHTABLE_ENTRY_WRITE_PDATA(ht, entry, data_size, data);
|
||||
|
||||
_Py_slist_prepend(&ht->buckets[index], (_Py_slist_item_t*)entry);
|
||||
ht->entries++;
|
||||
|
@ -350,7 +348,7 @@ _Py_hashtable_get(_Py_hashtable_t *ht, size_t key_size,const void *pkey,
|
|||
entry = _Py_hashtable_get_entry(ht, key_size, pkey);
|
||||
if (entry == NULL)
|
||||
return 0;
|
||||
_Py_HASHTABLE_ENTRY_READ_DATA(ht, entry, data_size, data);
|
||||
_Py_HASHTABLE_ENTRY_READ_PDATA(ht, entry, data_size, data);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue