Fix the bug of not hook cfree (#1066)

This commit is contained in:
trueeyu 2021-11-05 18:39:46 +08:00 committed by GitHub
parent 24023aa699
commit ffe44ef758
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 1 deletions

View File

@ -218,6 +218,15 @@ void* my_calloc(size_t n, size_t size) __THROW {
return ptr;
}
void my_cfree(void* ptr) __THROW {
#ifndef BE_TEST
size_t size = tc_malloc_size(ptr);
starrocks::tls_thread_status.mem_release(size);
#endif
tc_cfree(ptr);
}
// memalign
void* my_memalign(size_t align, size_t size) __THROW {
void* ptr = tc_memalign(align, size);
@ -282,6 +291,7 @@ void* malloc(size_t size) __THROW ALIAS(my_alloc);
void free(void* p) __THROW ALIAS(my_free);
void* realloc(void* p, size_t size) __THROW ALIAS(my_realloc);
void* calloc(size_t n, size_t size) __THROW ALIAS(my_calloc);
void cfree(void* ptr) __THROW ALIAS(my_cfree);
void* memalign(size_t align, size_t size) __THROW ALIAS(my_memalign);
void* aligned_alloc(size_t align, size_t size) __THROW ALIAS(my_aligned_alloc);
void* valloc(size_t size) __THROW ALIAS(my_valloc);

View File

@ -1,5 +1,5 @@
--- gperftools-gperftools-2.7/src/libc_override_gcc_and_weak.h 2018-04-30 14:00:34.000000000 +0800
+++ gperftools-gperftools-2.7/src/libc_override_gcc_and_weak.h 2021-11-02 20:20:15.404945205 +0800
+++ gperftools-gperftools-2.7/src/libc_override_gcc_and_weak.h 2021-11-05 17:26:30.853784606 +0800
@@ -57,168 +57,7 @@
#define ALIAS(tc_fn) __attribute__ ((alias (#tc_fn), used))
@ -169,3 +169,14 @@
#ifndef __UCLIBC__
void malloc_stats(void) __THROW ALIAS(tc_malloc_stats);
#endif
--- gperftools-gperftools-2.7/src/tests/tcmalloc_unittest.cc 2018-04-30 14:00:34.000000000 +0800
+++ gperftools-gperftools-2.7/src/tests/tcmalloc_unittest.cc 2021-11-05 17:26:59.906356097 +0800
@@ -1300,7 +1300,7 @@ static int RunAllTests(int argc, char**
CHECK(p1 != NULL);
VerifyNewHookWasCalled();
VerifyDeleteHookWasCalled();
- cfree(p1); // synonym for free
+ tc_cfree(p1); // synonym for free
VerifyDeleteHookWasCalled();
if (kOSSupportsMemalign) {