mirror of https://github.com/python/cpython
bpo-40602: _Py_hashtable_new() uses PyMem_Malloc() (GH-20046)
_Py_hashtable_new() now uses PyMem_Malloc/PyMem_Free allocator by default, rather than PyMem_RawMalloc/PyMem_RawFree. PyMem_Malloc is faster than PyMem_RawMalloc for memory blocks smaller than or equal to 512 bytes.
This commit is contained in:
parent
b617993b7c
commit
d0919f0d6b
|
@ -149,11 +149,12 @@ _Py_hashtable_new_full(size_t key_size, size_t data_size,
|
||||||
_Py_hashtable_allocator_t alloc;
|
_Py_hashtable_allocator_t alloc;
|
||||||
|
|
||||||
if (allocator == NULL) {
|
if (allocator == NULL) {
|
||||||
alloc.malloc = PyMem_RawMalloc;
|
alloc.malloc = PyMem_Malloc;
|
||||||
alloc.free = PyMem_RawFree;
|
alloc.free = PyMem_Free;
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
alloc = *allocator;
|
alloc = *allocator;
|
||||||
|
}
|
||||||
|
|
||||||
ht = (_Py_hashtable_t *)alloc.malloc(sizeof(_Py_hashtable_t));
|
ht = (_Py_hashtable_t *)alloc.malloc(sizeof(_Py_hashtable_t));
|
||||||
if (ht == NULL)
|
if (ht == NULL)
|
||||||
|
|
Loading…
Reference in New Issue