Move JEMALLOC_NOTHROW just after return type.

Only use __declspec(nothrow) in C++ mode.

This resolves #244.
This commit is contained in:
Jason Evans 2015-07-21 08:10:38 -07:00
parent 50cd636eed
commit 00632609df
3 changed files with 69 additions and 74 deletions

View File

@ -65,7 +65,11 @@
# define JEMALLOC_ALLOC_SIZE(s) # define JEMALLOC_ALLOC_SIZE(s)
# define JEMALLOC_ALLOC_SIZE2(s1, s2) # define JEMALLOC_ALLOC_SIZE2(s1, s2)
# define JEMALLOC_NOINLINE __declspec(noinline) # define JEMALLOC_NOINLINE __declspec(noinline)
# define JEMALLOC_NOTHROW __declspec(nothrow) # ifdef __cplusplus
# define JEMALLOC_NOTHROW __declspec(nothrow)
# else
# define JEMALLOC_NOTHROW
# endif
# define JEMALLOC_SECTION(s) __declspec(allocate(s)) # define JEMALLOC_SECTION(s) __declspec(allocate(s))
#else #else
# define JEMALLOC_ATTR(s) # define JEMALLOC_ATTR(s)

View File

@ -7,45 +7,45 @@ 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 *@je_@malloc(size_t size) JEMALLOC_CXX_THROW JEMALLOC_EXPORT void *JEMALLOC_NOTHROW @je_@malloc(size_t size)
JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE(1) JEMALLOC_NOTHROW; JEMALLOC_CXX_THROW JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE(1);
JEMALLOC_EXPORT void *@je_@calloc(size_t num, size_t size) JEMALLOC_CXX_THROW JEMALLOC_EXPORT void *JEMALLOC_NOTHROW @je_@calloc(size_t num, size_t size)
JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE2(1, 2) JEMALLOC_NOTHROW; JEMALLOC_CXX_THROW JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE2(1, 2);
JEMALLOC_EXPORT int @je_@posix_memalign(void **memptr, size_t alignment, JEMALLOC_EXPORT int JEMALLOC_NOTHROW @je_@posix_memalign(void **memptr,
size_t size) JEMALLOC_CXX_THROW JEMALLOC_ATTR(nonnull(1)) size_t alignment, size_t size) JEMALLOC_CXX_THROW JEMALLOC_ATTR(nonnull(1));
JEMALLOC_NOTHROW; JEMALLOC_EXPORT void *JEMALLOC_NOTHROW @je_@aligned_alloc(size_t alignment,
JEMALLOC_EXPORT void *@je_@aligned_alloc(size_t alignment, size_t size) size_t size) JEMALLOC_CXX_THROW JEMALLOC_ATTR(malloc)
JEMALLOC_CXX_THROW JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE(2) JEMALLOC_ALLOC_SIZE(2);
JEMALLOC_NOTHROW; JEMALLOC_EXPORT void *JEMALLOC_NOTHROW @je_@realloc(void *ptr, size_t size)
JEMALLOC_EXPORT void *@je_@realloc(void *ptr, size_t size) JEMALLOC_CXX_THROW JEMALLOC_CXX_THROW JEMALLOC_ALLOC_SIZE(2);
JEMALLOC_ALLOC_SIZE(2) JEMALLOC_NOTHROW; JEMALLOC_EXPORT void JEMALLOC_NOTHROW @je_@free(void *ptr)
JEMALLOC_EXPORT void @je_@free(void *ptr) JEMALLOC_CXX_THROW JEMALLOC_CXX_THROW;
JEMALLOC_NOTHROW;
JEMALLOC_EXPORT void *@je_@mallocx(size_t size, int flags) JEMALLOC_EXPORT void *JEMALLOC_NOTHROW @je_@mallocx(size_t size, int flags)
JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE(1) JEMALLOC_NOTHROW; JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE(1);
JEMALLOC_EXPORT void *@je_@rallocx(void *ptr, size_t size, int flags) JEMALLOC_EXPORT void *JEMALLOC_NOTHROW @je_@rallocx(void *ptr, size_t size,
JEMALLOC_ALLOC_SIZE(2) JEMALLOC_NOTHROW; int flags) JEMALLOC_ALLOC_SIZE(2);
JEMALLOC_EXPORT size_t @je_@xallocx(void *ptr, size_t size, size_t extra, JEMALLOC_EXPORT size_t JEMALLOC_NOTHROW @je_@xallocx(void *ptr, size_t size,
int flags) JEMALLOC_NOTHROW; size_t extra, int flags);
JEMALLOC_EXPORT size_t @je_@sallocx(const void *ptr, int flags) JEMALLOC_EXPORT size_t JEMALLOC_NOTHROW @je_@sallocx(const void *ptr,
JEMALLOC_ATTR(pure) JEMALLOC_NOTHROW; int flags) JEMALLOC_ATTR(pure);
JEMALLOC_EXPORT void @je_@dallocx(void *ptr, int flags) JEMALLOC_NOTHROW; JEMALLOC_EXPORT void JEMALLOC_NOTHROW @je_@dallocx(void *ptr, int flags);
JEMALLOC_EXPORT void @je_@sdallocx(void *ptr, size_t size, int flags) JEMALLOC_EXPORT void JEMALLOC_NOTHROW @je_@sdallocx(void *ptr, size_t size,
JEMALLOC_NOTHROW; int flags);
JEMALLOC_EXPORT size_t @je_@nallocx(size_t size, int flags) JEMALLOC_EXPORT size_t JEMALLOC_NOTHROW @je_@nallocx(size_t size, int flags)
JEMALLOC_ATTR(pure) JEMALLOC_NOTHROW; JEMALLOC_ATTR(pure);
JEMALLOC_EXPORT int @je_@mallctl(const char *name, void *oldp, JEMALLOC_EXPORT int JEMALLOC_NOTHROW @je_@mallctl(const char *name,
size_t *oldlenp, void *newp, size_t newlen) JEMALLOC_NOTHROW; void *oldp, size_t *oldlenp, void *newp, size_t newlen);
JEMALLOC_EXPORT int @je_@mallctlnametomib(const char *name, size_t *mibp, JEMALLOC_EXPORT int JEMALLOC_NOTHROW @je_@mallctlnametomib(const char *name,
size_t *miblenp) JEMALLOC_NOTHROW; size_t *mibp, size_t *miblenp);
JEMALLOC_EXPORT int @je_@mallctlbymib(const size_t *mib, size_t miblen, JEMALLOC_EXPORT int JEMALLOC_NOTHROW @je_@mallctlbymib(const size_t *mib,
void *oldp, size_t *oldlenp, void *newp, size_t newlen) JEMALLOC_NOTHROW; size_t miblen, void *oldp, size_t *oldlenp, void *newp, size_t newlen);
JEMALLOC_EXPORT void @je_@malloc_stats_print(void (*write_cb)(void *, JEMALLOC_EXPORT void JEMALLOC_NOTHROW @je_@malloc_stats_print(
const char *), void *@je_@cbopaque, const char *opts) JEMALLOC_NOTHROW; void (*write_cb)(void *, const char *), void *@je_@cbopaque,
JEMALLOC_EXPORT size_t @je_@malloc_usable_size( const char *opts);
JEMALLOC_USABLE_SIZE_CONST void *ptr) JEMALLOC_CXX_THROW JEMALLOC_NOTHROW; JEMALLOC_EXPORT size_t JEMALLOC_NOTHROW @je_@malloc_usable_size(
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 void *@je_@memalign(size_t alignment, size_t size)

View File

@ -1395,8 +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_EXPORT void *JEMALLOC_NOTHROW
JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE(1) JEMALLOC_NOTHROW JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE(1)
je_malloc(size_t size) je_malloc(size_t size)
{ {
void *ret; void *ret;
@ -1530,8 +1530,8 @@ label_oom:
goto label_return; goto label_return;
} }
JEMALLOC_EXPORT int JEMALLOC_EXPORT int JEMALLOC_NOTHROW
JEMALLOC_ATTR(nonnull(1)) JEMALLOC_NOTHROW JEMALLOC_ATTR(nonnull(1))
je_posix_memalign(void **memptr, size_t alignment, size_t size) je_posix_memalign(void **memptr, size_t alignment, size_t size)
{ {
int ret = imemalign(memptr, alignment, size, sizeof(void *)); int ret = imemalign(memptr, alignment, size, sizeof(void *));
@ -1540,8 +1540,8 @@ je_posix_memalign(void **memptr, size_t alignment, size_t size)
return (ret); return (ret);
} }
JEMALLOC_EXPORT void * JEMALLOC_EXPORT void *JEMALLOC_NOTHROW
JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE(2) JEMALLOC_NOTHROW 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)
{ {
void *ret; void *ret;
@ -1594,8 +1594,8 @@ icalloc_prof(tsd_t *tsd, size_t usize)
return (p); return (p);
} }
JEMALLOC_EXPORT void * JEMALLOC_EXPORT void *JEMALLOC_NOTHROW
JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE2(1, 2) JEMALLOC_NOTHROW JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE2(1, 2)
je_calloc(size_t num, size_t size) je_calloc(size_t num, size_t size)
{ {
void *ret; void *ret;
@ -1739,8 +1739,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_EXPORT void *JEMALLOC_NOTHROW
JEMALLOC_ALLOC_SIZE(2) JEMALLOC_NOTHROW JEMALLOC_ALLOC_SIZE(2)
je_realloc(void *ptr, size_t size) je_realloc(void *ptr, size_t size)
{ {
void *ret; void *ret;
@ -1803,8 +1803,7 @@ je_realloc(void *ptr, size_t size)
return (ret); return (ret);
} }
JEMALLOC_EXPORT void JEMALLOC_EXPORT void JEMALLOC_NOTHROW
JEMALLOC_NOTHROW
je_free(void *ptr) je_free(void *ptr)
{ {
@ -2032,8 +2031,8 @@ imallocx_no_prof(tsd_t *tsd, size_t size, int flags, size_t *usize)
return (p); return (p);
} }
JEMALLOC_EXPORT void * JEMALLOC_EXPORT void *JEMALLOC_NOTHROW
JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE(1) JEMALLOC_NOTHROW JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE(1)
je_mallocx(size_t size, int flags) je_mallocx(size_t size, int flags)
{ {
tsd_t *tsd; tsd_t *tsd;
@ -2130,8 +2129,8 @@ irallocx_prof(tsd_t *tsd, void *oldptr, size_t old_usize, size_t size,
return (p); return (p);
} }
JEMALLOC_EXPORT void * JEMALLOC_EXPORT void *JEMALLOC_NOTHROW
JEMALLOC_ALLOC_SIZE(2) JEMALLOC_NOTHROW JEMALLOC_ALLOC_SIZE(2)
je_rallocx(void *ptr, size_t size, int flags) je_rallocx(void *ptr, size_t size, int flags)
{ {
void *p; void *p;
@ -2276,8 +2275,7 @@ ixallocx_prof(tsd_t *tsd, void *ptr, size_t old_usize, size_t size,
return (usize); return (usize);
} }
JEMALLOC_EXPORT size_t JEMALLOC_EXPORT size_t JEMALLOC_NOTHROW
JEMALLOC_NOTHROW
je_xallocx(void *ptr, size_t size, size_t extra, int flags) je_xallocx(void *ptr, size_t size, size_t extra, int flags)
{ {
tsd_t *tsd; tsd_t *tsd;
@ -2318,8 +2316,8 @@ label_not_resized:
return (usize); return (usize);
} }
JEMALLOC_EXPORT size_t JEMALLOC_EXPORT size_t JEMALLOC_NOTHROW
JEMALLOC_ATTR(pure) JEMALLOC_NOTHROW JEMALLOC_ATTR(pure)
je_sallocx(const void *ptr, int flags) je_sallocx(const void *ptr, int flags)
{ {
size_t usize; size_t usize;
@ -2335,8 +2333,7 @@ je_sallocx(const void *ptr, int flags)
return (usize); return (usize);
} }
JEMALLOC_EXPORT void JEMALLOC_EXPORT void JEMALLOC_NOTHROW
JEMALLOC_NOTHROW
je_dallocx(void *ptr, int flags) je_dallocx(void *ptr, int flags)
{ {
tsd_t *tsd; tsd_t *tsd;
@ -2371,8 +2368,7 @@ inallocx(size_t size, int flags)
return (usize); return (usize);
} }
JEMALLOC_EXPORT void JEMALLOC_EXPORT void JEMALLOC_NOTHROW
JEMALLOC_NOTHROW
je_sdallocx(void *ptr, size_t size, int flags) je_sdallocx(void *ptr, size_t size, int flags)
{ {
tsd_t *tsd; tsd_t *tsd;
@ -2397,8 +2393,8 @@ je_sdallocx(void *ptr, size_t size, int flags)
isfree(tsd, ptr, usize, tcache); isfree(tsd, ptr, usize, tcache);
} }
JEMALLOC_EXPORT size_t JEMALLOC_EXPORT size_t JEMALLOC_NOTHROW
JEMALLOC_ATTR(pure) JEMALLOC_NOTHROW JEMALLOC_ATTR(pure)
je_nallocx(size_t size, int flags) je_nallocx(size_t size, int flags)
{ {
@ -2410,8 +2406,7 @@ je_nallocx(size_t size, int flags)
return (inallocx(size, flags)); return (inallocx(size, flags));
} }
JEMALLOC_EXPORT int JEMALLOC_EXPORT int JEMALLOC_NOTHROW
JEMALLOC_NOTHROW
je_mallctl(const char *name, void *oldp, size_t *oldlenp, void *newp, je_mallctl(const char *name, void *oldp, size_t *oldlenp, void *newp,
size_t newlen) size_t newlen)
{ {
@ -2422,8 +2417,7 @@ je_mallctl(const char *name, void *oldp, size_t *oldlenp, void *newp,
return (ctl_byname(name, oldp, oldlenp, newp, newlen)); return (ctl_byname(name, oldp, oldlenp, newp, newlen));
} }
JEMALLOC_EXPORT int JEMALLOC_EXPORT int JEMALLOC_NOTHROW
JEMALLOC_NOTHROW
je_mallctlnametomib(const char *name, size_t *mibp, size_t *miblenp) je_mallctlnametomib(const char *name, size_t *mibp, size_t *miblenp)
{ {
@ -2433,8 +2427,7 @@ je_mallctlnametomib(const char *name, size_t *mibp, size_t *miblenp)
return (ctl_nametomib(name, mibp, miblenp)); return (ctl_nametomib(name, mibp, miblenp));
} }
JEMALLOC_EXPORT int JEMALLOC_EXPORT int JEMALLOC_NOTHROW
JEMALLOC_NOTHROW
je_mallctlbymib(const size_t *mib, size_t miblen, void *oldp, size_t *oldlenp, je_mallctlbymib(const size_t *mib, size_t miblen, void *oldp, size_t *oldlenp,
void *newp, size_t newlen) void *newp, size_t newlen)
{ {
@ -2445,8 +2438,7 @@ je_mallctlbymib(const size_t *mib, size_t miblen, void *oldp, size_t *oldlenp,
return (ctl_bymib(mib, miblen, oldp, oldlenp, newp, newlen)); return (ctl_bymib(mib, miblen, oldp, oldlenp, newp, newlen));
} }
JEMALLOC_EXPORT void JEMALLOC_EXPORT void JEMALLOC_NOTHROW
JEMALLOC_NOTHROW
je_malloc_stats_print(void (*write_cb)(void *, const char *), void *cbopaque, je_malloc_stats_print(void (*write_cb)(void *, const char *), void *cbopaque,
const char *opts) const char *opts)
{ {
@ -2454,8 +2446,7 @@ je_malloc_stats_print(void (*write_cb)(void *, const char *), void *cbopaque,
stats_print(write_cb, cbopaque, opts); stats_print(write_cb, cbopaque, opts);
} }
JEMALLOC_EXPORT size_t JEMALLOC_EXPORT size_t JEMALLOC_NOTHROW
JEMALLOC_NOTHROW
je_malloc_usable_size(JEMALLOC_USABLE_SIZE_CONST void *ptr) je_malloc_usable_size(JEMALLOC_USABLE_SIZE_CONST void *ptr)
{ {
size_t ret; size_t ret;