diff --git a/simple_pool/CMakeLists.txt b/simple_pool/CMakeLists.txt index 24b677f..5287247 100644 --- a/simple_pool/CMakeLists.txt +++ b/simple_pool/CMakeLists.txt @@ -19,7 +19,6 @@ add_compile_options( -Wimplicit-fallthrough -Wundef -Wfloat-equal - -march=native -fPIE -fno-omit-frame-pointer ) diff --git a/simple_pool/dyn_mem_pool.h b/simple_pool/dyn_mem_pool.h index 8aefaae..928533f 100644 --- a/simple_pool/dyn_mem_pool.h +++ b/simple_pool/dyn_mem_pool.h @@ -313,6 +313,9 @@ void multipool_free(struct MultiPool* multipool) { uint32_t find_multipool_index_for_size(uint32_t size) { static const uint32_t int32bitcount = sizeof(uint32_t) * CHAR_BIT; uint32_t size_value = (size - 1) >>DynPoolMinMultiPoolMemNodeSizeBits; + if( __builtin_expect(size_value == 0, 0)) { + return 0; + } return (int32bitcount - (uint32_t)__builtin_clz(size_value)); }