mirror of
https://github.com/fluencelabs/redis
synced 2025-03-18 16:40:50 +00:00
Don't use prefix when malloc_size() can be called
Also, use tcmalloc functions explicitly via macros to prevent symbol lookups to resolve to native malloc/free on OSX.
This commit is contained in:
parent
da47440d44
commit
7cdc98b630
13
src/config.h
13
src/config.h
@ -5,8 +5,17 @@
|
||||
#include <AvailabilityMacros.h>
|
||||
#endif
|
||||
|
||||
/* test for malloc_size() */
|
||||
#ifdef __APPLE__
|
||||
/* use tcmalloc's malloc_size() when available */
|
||||
#if defined(USE_TCMALLOC)
|
||||
#include <google/tcmalloc.h>
|
||||
#if TC_VERSION_MAJOR >= 1 && TC_VERSION_MINOR >= 6
|
||||
#define HAVE_MALLOC_SIZE 1
|
||||
#define redis_malloc_size(p) tc_malloc_size(p)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* fallback to native malloc_size() for osx */
|
||||
#if defined(__APPLE__) && !defined(HAVE_MALLOC_SIZE)
|
||||
#include <malloc/malloc.h>
|
||||
#define HAVE_MALLOC_SIZE 1
|
||||
#define redis_malloc_size(p) malloc_size(p)
|
||||
|
@ -32,13 +32,24 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <pthread.h>
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#if defined(__sun)
|
||||
#define PREFIX_SIZE sizeof(long long)
|
||||
#ifdef HAVE_MALLOC_SIZE
|
||||
#define PREFIX_SIZE (0)
|
||||
#else
|
||||
#define PREFIX_SIZE sizeof(size_t)
|
||||
#if defined(__sun)
|
||||
#define PREFIX_SIZE (sizeof(long long))
|
||||
#else
|
||||
#define PREFIX_SIZE (sizeof(size_t))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Explicitly override malloc/free etc when using tcmalloc. */
|
||||
#if defined(USE_TCMALLOC)
|
||||
#define malloc(size) tc_malloc(size)
|
||||
#define calloc(count,size) tc_calloc(count,size)
|
||||
#define realloc(ptr,size) tc_realloc(ptr,size)
|
||||
#define free(ptr) tc_free(ptr)
|
||||
#endif
|
||||
|
||||
#define increment_used_memory(__n) do { \
|
||||
|
Loading…
x
Reference in New Issue
Block a user