X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=folly%2Fdetail%2FMalloc.h;h=46704c799e503fbc70f6eaa55b3cadcba74f413c;hb=cdcb98c4ff11e684368d8fc9e598dc8b872b94e8;hp=e6d1e4997eedcccc5ae2950b4bd7470a866759bf;hpb=ac354aba854145285dfc0d383ce8bfca4586f0e4;p=folly.git diff --git a/folly/detail/Malloc.h b/folly/detail/Malloc.h index e6d1e499..46704c79 100644 --- a/folly/detail/Malloc.h +++ b/folly/detail/Malloc.h @@ -1,5 +1,5 @@ /* - * Copyright 2015 Facebook, Inc. + * Copyright 2016 Facebook, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,8 +14,7 @@ * limitations under the License. */ -#ifndef FOLLY_DETAIL_MALLOC_H -#define FOLLY_DETAIL_MALLOC_H +#pragma once #include @@ -29,6 +28,7 @@ void* rallocx(void*, size_t, int) __attribute__((__weak__)); size_t xallocx(void*, size_t, size_t, int) __attribute__((__weak__)); size_t sallocx(const void*, int) __attribute__((__weak__)); void dallocx(void*, int) __attribute__((__weak__)); +void sdallocx(void*, size_t, int) __attribute__((__weak__)); size_t nallocx(size_t, int) __attribute__((__weak__)); int mallctl(const char*, void*, size_t*, void*, size_t) __attribute__((__weak__)); @@ -41,13 +41,26 @@ extern void* (*rallocx)(void*, size_t, int); extern size_t (*xallocx)(void*, size_t, size_t, int); extern size_t (*sallocx)(const void*, int); extern void (*dallocx)(void*, int); +extern void (*sdallocx)(void*, size_t, int); extern size_t (*nallocx)(size_t, int); extern int (*mallctl)(const char*, void*, size_t*, void*, size_t); extern int (*mallctlnametomib)(const char*, size_t*, size_t*); extern int (*mallctlbymib)(const size_t*, size_t, void*, size_t*, void*, size_t); +#ifdef _MSC_VER +// We emulate weak linkage for MSVC. The symbols we're +// aliasing to are hiding in MallocImpl.cpp +#pragma comment(linker, "/alternatename:mallocx=mallocxWeak") +#pragma comment(linker, "/alternatename:rallocx=rallocxWeak") +#pragma comment(linker, "/alternatename:xallocx=xallocxWeak") +#pragma comment(linker, "/alternatename:sallocx=sallocxWeak") +#pragma comment(linker, "/alternatename:dallocx=dallocxWeak") +#pragma comment(linker, "/alternatename:sdallocx=sdallocxWeak") +#pragma comment(linker, "/alternatename:nallocx=nallocxWeak") +#pragma comment(linker, "/alternatename:mallctl=mallctlWeak") +#pragma comment(linker, "/alternatename:mallctlnametomib=mallctlnametomibWeak") +#pragma comment(linker, "/alternatename:mallctlbymib=mallctlbymibWeak") +#endif #endif } - -#endif