From: Christopher Dykes Date: Wed, 8 Mar 2017 18:48:01 +0000 (-0800) Subject: Don't define MALLOCX_* if building with JEMalloc X-Git-Tag: v2017.03.13.00~12 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=05d0e3eda9f6ce6950a9a5cc2afe8bff92e19e2e;p=folly.git Don't define MALLOCX_* if building with JEMalloc Summary: With the way it is currently, if `jemalloc.h` is included after `folly/Malloc.h`, `jemalloc.h` ends up redefining these. This changes it to just include `jemalloc.h` if we know we're compiling with JEMalloc. Reviewed By: yfeldblum Differential Revision: D4660285 fbshipit-source-id: 814e36432676e89cf7ba2bc5247b7dde2bfdc14a --- diff --git a/folly/Malloc.h b/folly/Malloc.h index 4ed53ddd..a5884b0b 100644 --- a/folly/Malloc.h +++ b/folly/Malloc.h @@ -19,16 +19,23 @@ #pragma once +#include + /** * Define various MALLOCX_* macros normally provided by jemalloc. We define * them so that we don't have to include jemalloc.h, in case the program is * built without jemalloc support. */ -#ifndef MALLOCX_LG_ALIGN -#define MALLOCX_LG_ALIGN(la) (la) -#endif -#ifndef MALLOCX_ZERO -#define MALLOCX_ZERO (static_cast(0x40)) +#if defined(USE_JEMALLOC) || defined(FOLLY_USE_JEMALLOC) +// We have JEMalloc, so use it. +# include +#else +# ifndef MALLOCX_LG_ALIGN +# define MALLOCX_LG_ALIGN(la) (la) +# endif +# ifndef MALLOCX_ZERO +# define MALLOCX_ZERO (static_cast(0x40)) +# endif #endif // If using fbstring from libstdc++ (see comment in FBString.h), then