]> git.kaiwu.me - quickjs.git/commitdiff
disable inlining of malloc() wrappers to avoid problems with LTO (#515)
authorFabrice Bellard <fabrice@bellard.org>
Mon, 1 Jun 2026 16:43:57 +0000 (18:43 +0200)
committerFabrice Bellard <fabrice@bellard.org>
Tue, 2 Jun 2026 08:43:18 +0000 (10:43 +0200)
quickjs.c

index 9c78960f9593876d16bf89131b0be8a00f052be4..750a3043fa7086546e84d67ca3c85e52e3770a4e 100644 (file)
--- a/quickjs.c
+++ b/quickjs.c
@@ -1788,22 +1788,22 @@ static void js_trigger_gc(JSRuntime *rt, size_t size)
     }
 }
 
-extern force_inline void *js_malloc_rt(JSRuntime *rt, size_t size)
+void *js_malloc_rt(JSRuntime *rt, size_t size)
 {
     return __js_malloc(&rt->malloc_ctx, size);
 }
 
-extern force_inline void js_free_rt(JSRuntime *rt, void *ptr)
+void js_free_rt(JSRuntime *rt, void *ptr)
 {
     __js_free(&rt->malloc_ctx, ptr);
 }
 
-extern force_inline void *js_realloc_rt(JSRuntime *rt, void *ptr, size_t size)
+void *js_realloc_rt(JSRuntime *rt, void *ptr, size_t size)
 {
     return __js_realloc(&rt->malloc_ctx, ptr, size);
 }
 
-extern force_inline size_t js_malloc_usable_size_rt(JSRuntime *rt, const void *ptr)
+size_t js_malloc_usable_size_rt(JSRuntime *rt, const void *ptr)
 {
     return __js_malloc_usable_size(&rt->malloc_ctx, ptr);
 }
@@ -1818,7 +1818,7 @@ void *js_mallocz_rt(JSRuntime *rt, size_t size)
 }
 
 /* Throw out of memory in case of error */
-extern force_inline void *js_malloc(JSContext *ctx, size_t size)
+void *js_malloc(JSContext *ctx, size_t size)
 {
     void *ptr;
     ptr = js_malloc_rt(ctx->rt, size);
@@ -1830,7 +1830,7 @@ extern force_inline void *js_malloc(JSContext *ctx, size_t size)
 }
 
 /* Throw out of memory in case of error */
-extern force_inline void *js_mallocz(JSContext *ctx, size_t size)
+void *js_mallocz(JSContext *ctx, size_t size)
 {
     void *ptr;
     ptr = js_mallocz_rt(ctx->rt, size);
@@ -1841,7 +1841,7 @@ extern force_inline void *js_mallocz(JSContext *ctx, size_t size)
     return ptr;
 }
 
-extern force_inline void js_free(JSContext *ctx, void *ptr)
+void js_free(JSContext *ctx, void *ptr)
 {
     js_free_rt(ctx->rt, ptr);
 }