From: Victor Stinner Date: Tue, 12 May 2020 01:07:40 +0000 (+0200) Subject: bpo-40602: _Py_hashtable_new() uses PyMem_Malloc() (GH-20046) X-Git-Tag: v3.9.0b1~111 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d0919f0d6bb757b6bcfd7b2e15656d318c9d5cd9;p=thirdparty%2FPython%2Fcpython.git 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. --- diff --git a/Python/hashtable.c b/Python/hashtable.c index 22b84590105f..e9f02d8650e4 100644 --- a/Python/hashtable.c +++ b/Python/hashtable.c @@ -149,11 +149,12 @@ _Py_hashtable_new_full(size_t key_size, size_t data_size, _Py_hashtable_allocator_t alloc; if (allocator == NULL) { - alloc.malloc = PyMem_RawMalloc; - alloc.free = PyMem_RawFree; + alloc.malloc = PyMem_Malloc; + alloc.free = PyMem_Free; } - else + else { alloc = *allocator; + } ht = (_Py_hashtable_t *)alloc.malloc(sizeof(_Py_hashtable_t)); if (ht == NULL)