MSVC compatibility changes
- Decorate public function with __declspec(allocator) and __declspec(restrict), just like MSVC 1900 - Support JEMALLOC_HAS_RESTRICT by defining the restrict keyword - Move __declspec(nothrow) between 'void' and '*' so it compiles once more
This commit is contained in:
parent
b49a334a64
commit
c1a6a51e40
@ -43,6 +43,9 @@ typedef intptr_t ssize_t;
|
|||||||
# define PATH_MAX 1024
|
# define PATH_MAX 1024
|
||||||
# define STDERR_FILENO 2
|
# define STDERR_FILENO 2
|
||||||
# define __func__ __FUNCTION__
|
# define __func__ __FUNCTION__
|
||||||
|
# ifdef JEMALLOC_HAS_RESTRICT
|
||||||
|
# define restrict __restrict
|
||||||
|
# endif
|
||||||
/* Disable warnings about deprecated system functions. */
|
/* Disable warnings about deprecated system functions. */
|
||||||
# pragma warning(disable: 4996)
|
# pragma warning(disable: 4996)
|
||||||
#if _MSC_VER < 1800
|
#if _MSC_VER < 1800
|
||||||
|
@ -59,6 +59,8 @@
|
|||||||
# define JEMALLOC_NOINLINE JEMALLOC_ATTR(noinline)
|
# define JEMALLOC_NOINLINE JEMALLOC_ATTR(noinline)
|
||||||
# define JEMALLOC_NOTHROW JEMALLOC_ATTR(nothrow)
|
# define JEMALLOC_NOTHROW JEMALLOC_ATTR(nothrow)
|
||||||
# define JEMALLOC_SECTION(s) JEMALLOC_ATTR(section(s))
|
# define JEMALLOC_SECTION(s) JEMALLOC_ATTR(section(s))
|
||||||
|
# define JEMALLOC_RESTRICT_RETURN
|
||||||
|
# define JEMALLOC_ALLOCATOR
|
||||||
#elif _MSC_VER
|
#elif _MSC_VER
|
||||||
# define JEMALLOC_ATTR(s)
|
# define JEMALLOC_ATTR(s)
|
||||||
# define JEMALLOC_ALIGNED(s) __declspec(align(s))
|
# define JEMALLOC_ALIGNED(s) __declspec(align(s))
|
||||||
@ -79,6 +81,12 @@
|
|||||||
# define JEMALLOC_NOTHROW
|
# define JEMALLOC_NOTHROW
|
||||||
# endif
|
# endif
|
||||||
# define JEMALLOC_SECTION(s) __declspec(allocate(s))
|
# define JEMALLOC_SECTION(s) __declspec(allocate(s))
|
||||||
|
# define JEMALLOC_RESTRICT_RETURN __declspec(restrict)
|
||||||
|
# if _MSC_VER >= 1900 && !defined(__EDG__)
|
||||||
|
# define JEMALLOC_ALLOCATOR __declspec(allocator)
|
||||||
|
# else
|
||||||
|
# define JEMALLOC_ALLOCATOR
|
||||||
|
# endif
|
||||||
#else
|
#else
|
||||||
# define JEMALLOC_ATTR(s)
|
# define JEMALLOC_ATTR(s)
|
||||||
# define JEMALLOC_ALIGNED(s)
|
# define JEMALLOC_ALIGNED(s)
|
||||||
@ -89,4 +97,6 @@
|
|||||||
# define JEMALLOC_NOINLINE
|
# define JEMALLOC_NOINLINE
|
||||||
# define JEMALLOC_NOTHROW
|
# define JEMALLOC_NOTHROW
|
||||||
# define JEMALLOC_SECTION(s)
|
# define JEMALLOC_SECTION(s)
|
||||||
|
# define JEMALLOC_RESTRICT_RETURN
|
||||||
|
# define JEMALLOC_ALLOCATOR
|
||||||
#endif
|
#endif
|
||||||
|
@ -7,23 +7,29 @@ extern JEMALLOC_EXPORT const char *@je_@malloc_conf;
|
|||||||
extern JEMALLOC_EXPORT void (*@je_@malloc_message)(void *cbopaque,
|
extern JEMALLOC_EXPORT void (*@je_@malloc_message)(void *cbopaque,
|
||||||
const char *s);
|
const char *s);
|
||||||
|
|
||||||
JEMALLOC_EXPORT void *JEMALLOC_NOTHROW @je_@malloc(size_t size)
|
JEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN
|
||||||
|
void JEMALLOC_NOTHROW *@je_@malloc(size_t size)
|
||||||
JEMALLOC_CXX_THROW JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE(1);
|
JEMALLOC_CXX_THROW JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE(1);
|
||||||
JEMALLOC_EXPORT void *JEMALLOC_NOTHROW @je_@calloc(size_t num, size_t size)
|
JEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN
|
||||||
|
void JEMALLOC_NOTHROW *@je_@calloc(size_t num, size_t size)
|
||||||
JEMALLOC_CXX_THROW JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE2(1, 2);
|
JEMALLOC_CXX_THROW JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE2(1, 2);
|
||||||
JEMALLOC_EXPORT int JEMALLOC_NOTHROW @je_@posix_memalign(void **memptr,
|
JEMALLOC_EXPORT int JEMALLOC_NOTHROW @je_@posix_memalign(void **memptr,
|
||||||
size_t alignment, size_t size) JEMALLOC_CXX_THROW JEMALLOC_ATTR(nonnull(1));
|
size_t alignment, size_t size) JEMALLOC_CXX_THROW JEMALLOC_ATTR(nonnull(1));
|
||||||
JEMALLOC_EXPORT void *JEMALLOC_NOTHROW @je_@aligned_alloc(size_t alignment,
|
JEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN
|
||||||
|
void JEMALLOC_NOTHROW *@je_@aligned_alloc(size_t alignment,
|
||||||
size_t size) JEMALLOC_CXX_THROW JEMALLOC_ATTR(malloc)
|
size_t size) JEMALLOC_CXX_THROW JEMALLOC_ATTR(malloc)
|
||||||
JEMALLOC_ALLOC_SIZE(2);
|
JEMALLOC_ALLOC_SIZE(2);
|
||||||
JEMALLOC_EXPORT void *JEMALLOC_NOTHROW @je_@realloc(void *ptr, size_t size)
|
JEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN
|
||||||
|
void JEMALLOC_NOTHROW *@je_@realloc(void *ptr, size_t size)
|
||||||
JEMALLOC_CXX_THROW JEMALLOC_ALLOC_SIZE(2);
|
JEMALLOC_CXX_THROW JEMALLOC_ALLOC_SIZE(2);
|
||||||
JEMALLOC_EXPORT void JEMALLOC_NOTHROW @je_@free(void *ptr)
|
JEMALLOC_EXPORT void JEMALLOC_NOTHROW @je_@free(void *ptr)
|
||||||
JEMALLOC_CXX_THROW;
|
JEMALLOC_CXX_THROW;
|
||||||
|
|
||||||
JEMALLOC_EXPORT void *JEMALLOC_NOTHROW @je_@mallocx(size_t size, int flags)
|
JEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN
|
||||||
|
void JEMALLOC_NOTHROW *@je_@mallocx(size_t size, int flags)
|
||||||
JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE(1);
|
JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE(1);
|
||||||
JEMALLOC_EXPORT void *JEMALLOC_NOTHROW @je_@rallocx(void *ptr, size_t size,
|
JEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN
|
||||||
|
void JEMALLOC_NOTHROW *@je_@rallocx(void *ptr, size_t size,
|
||||||
int flags) JEMALLOC_ALLOC_SIZE(2);
|
int flags) JEMALLOC_ALLOC_SIZE(2);
|
||||||
JEMALLOC_EXPORT size_t JEMALLOC_NOTHROW @je_@xallocx(void *ptr, size_t size,
|
JEMALLOC_EXPORT size_t JEMALLOC_NOTHROW @je_@xallocx(void *ptr, size_t size,
|
||||||
size_t extra, int flags);
|
size_t extra, int flags);
|
||||||
@ -48,11 +54,13 @@ JEMALLOC_EXPORT size_t JEMALLOC_NOTHROW @je_@malloc_usable_size(
|
|||||||
JEMALLOC_USABLE_SIZE_CONST void *ptr) JEMALLOC_CXX_THROW;
|
JEMALLOC_USABLE_SIZE_CONST void *ptr) JEMALLOC_CXX_THROW;
|
||||||
|
|
||||||
#ifdef JEMALLOC_OVERRIDE_MEMALIGN
|
#ifdef JEMALLOC_OVERRIDE_MEMALIGN
|
||||||
JEMALLOC_EXPORT void *@je_@memalign(size_t alignment, size_t size)
|
JEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN
|
||||||
|
void JEMALLOC_NOTHROW *@je_@memalign(size_t alignment, size_t size)
|
||||||
JEMALLOC_ATTR(malloc);
|
JEMALLOC_ATTR(malloc);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef JEMALLOC_OVERRIDE_VALLOC
|
#ifdef JEMALLOC_OVERRIDE_VALLOC
|
||||||
JEMALLOC_EXPORT void *@je_@valloc(size_t size) JEMALLOC_CXX_THROW
|
JEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN
|
||||||
|
void JEMALLOC_NOTHROW *@je_@valloc(size_t size) JEMALLOC_CXX_THROW
|
||||||
JEMALLOC_ATTR(malloc);
|
JEMALLOC_ATTR(malloc);
|
||||||
#endif
|
#endif
|
||||||
|
@ -1395,7 +1395,8 @@ imalloc_body(size_t size, tsd_t **tsd, size_t *usize)
|
|||||||
return (imalloc(*tsd, size));
|
return (imalloc(*tsd, size));
|
||||||
}
|
}
|
||||||
|
|
||||||
JEMALLOC_EXPORT void *JEMALLOC_NOTHROW
|
JEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN
|
||||||
|
void JEMALLOC_NOTHROW *
|
||||||
JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE(1)
|
JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE(1)
|
||||||
je_malloc(size_t size)
|
je_malloc(size_t size)
|
||||||
{
|
{
|
||||||
@ -1540,7 +1541,8 @@ je_posix_memalign(void **memptr, size_t alignment, size_t size)
|
|||||||
return (ret);
|
return (ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
JEMALLOC_EXPORT void *JEMALLOC_NOTHROW
|
JEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN
|
||||||
|
void JEMALLOC_NOTHROW *
|
||||||
JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE(2)
|
JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE(2)
|
||||||
je_aligned_alloc(size_t alignment, size_t size)
|
je_aligned_alloc(size_t alignment, size_t size)
|
||||||
{
|
{
|
||||||
@ -1594,7 +1596,8 @@ icalloc_prof(tsd_t *tsd, size_t usize)
|
|||||||
return (p);
|
return (p);
|
||||||
}
|
}
|
||||||
|
|
||||||
JEMALLOC_EXPORT void *JEMALLOC_NOTHROW
|
JEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN
|
||||||
|
void JEMALLOC_NOTHROW *
|
||||||
JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE2(1, 2)
|
JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE2(1, 2)
|
||||||
je_calloc(size_t num, size_t size)
|
je_calloc(size_t num, size_t size)
|
||||||
{
|
{
|
||||||
@ -1739,7 +1742,8 @@ isfree(tsd_t *tsd, void *ptr, size_t usize, tcache_t *tcache)
|
|||||||
JEMALLOC_VALGRIND_FREE(ptr, rzsize);
|
JEMALLOC_VALGRIND_FREE(ptr, rzsize);
|
||||||
}
|
}
|
||||||
|
|
||||||
JEMALLOC_EXPORT void *JEMALLOC_NOTHROW
|
JEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN
|
||||||
|
void JEMALLOC_NOTHROW *
|
||||||
JEMALLOC_ALLOC_SIZE(2)
|
JEMALLOC_ALLOC_SIZE(2)
|
||||||
je_realloc(void *ptr, size_t size)
|
je_realloc(void *ptr, size_t size)
|
||||||
{
|
{
|
||||||
@ -1823,7 +1827,8 @@ je_free(void *ptr)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef JEMALLOC_OVERRIDE_MEMALIGN
|
#ifdef JEMALLOC_OVERRIDE_MEMALIGN
|
||||||
JEMALLOC_EXPORT void *
|
JEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN
|
||||||
|
void JEMALLOC_NOTHROW *
|
||||||
JEMALLOC_ATTR(malloc)
|
JEMALLOC_ATTR(malloc)
|
||||||
je_memalign(size_t alignment, size_t size)
|
je_memalign(size_t alignment, size_t size)
|
||||||
{
|
{
|
||||||
@ -1836,7 +1841,8 @@ je_memalign(size_t alignment, size_t size)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef JEMALLOC_OVERRIDE_VALLOC
|
#ifdef JEMALLOC_OVERRIDE_VALLOC
|
||||||
JEMALLOC_EXPORT void *
|
JEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN
|
||||||
|
void JEMALLOC_NOTHROW *
|
||||||
JEMALLOC_ATTR(malloc)
|
JEMALLOC_ATTR(malloc)
|
||||||
je_valloc(size_t size)
|
je_valloc(size_t size)
|
||||||
{
|
{
|
||||||
@ -2031,7 +2037,8 @@ imallocx_no_prof(tsd_t *tsd, size_t size, int flags, size_t *usize)
|
|||||||
return (p);
|
return (p);
|
||||||
}
|
}
|
||||||
|
|
||||||
JEMALLOC_EXPORT void *JEMALLOC_NOTHROW
|
JEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN
|
||||||
|
void JEMALLOC_NOTHROW *
|
||||||
JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE(1)
|
JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE(1)
|
||||||
je_mallocx(size_t size, int flags)
|
je_mallocx(size_t size, int flags)
|
||||||
{
|
{
|
||||||
@ -2129,7 +2136,8 @@ irallocx_prof(tsd_t *tsd, void *oldptr, size_t old_usize, size_t size,
|
|||||||
return (p);
|
return (p);
|
||||||
}
|
}
|
||||||
|
|
||||||
JEMALLOC_EXPORT void *JEMALLOC_NOTHROW
|
JEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN
|
||||||
|
void JEMALLOC_NOTHROW *
|
||||||
JEMALLOC_ALLOC_SIZE(2)
|
JEMALLOC_ALLOC_SIZE(2)
|
||||||
je_rallocx(void *ptr, size_t size, int flags)
|
je_rallocx(void *ptr, size_t size, int flags)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user