void zbx_binary_heap_create_ext(zbx_binary_heap_t *heap, zbx_compare_func_t compare_func, int options, zbx_mem_malloc_func_t mem_malloc_func, zbx_mem_realloc_func_t mem_realloc_func, zbx_mem_free_func_t mem_free_func) { heap->elems = NULL; heap->elems_num = 0; heap->elems_alloc = 0; heap->compare_func = compare_func; heap->options = options; if (HAS_DIRECT_OPTION(heap)) { heap->key_index = mem_malloc_func(NULL, sizeof(zbx_hashmap_t)); zbx_hashmap_create_ext(heap->key_index, 512, ZBX_DEFAULT_UINT64_HASH_FUNC, ZBX_DEFAULT_UINT64_COMPARE_FUNC, mem_malloc_func, mem_realloc_func, mem_free_func); } else heap->key_index = NULL; heap->mem_malloc_func = mem_malloc_func; heap->mem_realloc_func = mem_realloc_func; heap->mem_free_func = mem_free_func; }
void zbx_hashmap_create(zbx_hashmap_t *hm, size_t init_size) { zbx_hashmap_create_ext(hm, init_size, ZBX_DEFAULT_UINT64_HASH_FUNC, ZBX_DEFAULT_UINT64_COMPARE_FUNC, ZBX_DEFAULT_MEM_MALLOC_FUNC, ZBX_DEFAULT_MEM_REALLOC_FUNC, ZBX_DEFAULT_MEM_FREE_FUNC); }