diff --git a/quickjs.c b/quickjs.c index 085037e8a..946caf5cd 100644 --- a/quickjs.c +++ b/quickjs.c @@ -1341,7 +1341,7 @@ static void js_trigger_gc(JSRuntime *rt, size_t size) force_gc = TRUE; #else force_gc = ((rt->malloc_state.malloc_size + size) > - rt->malloc_gc_threshold); + rt->malloc_gc_threshold - 1); #endif if (force_gc) { #ifdef DUMP_GC @@ -1755,7 +1755,11 @@ void JS_SetDumpFlags(JSRuntime *rt, uint64_t flags) rt->dump_flags = flags; } -/* use -1 to disable automatic GC */ +size_t JS_GetGCThreshold(JSRuntime *rt) { + return rt->malloc_gc_threshold; +} + +/* use 0 to disable automatic GC */ void JS_SetGCThreshold(JSRuntime *rt, size_t gc_threshold) { rt->malloc_gc_threshold = gc_threshold; diff --git a/quickjs.h b/quickjs.h index d44ebbc9c..e3ac650b7 100644 --- a/quickjs.h +++ b/quickjs.h @@ -301,6 +301,8 @@ JS_EXTERN void JS_SetRuntimeInfo(JSRuntime *rt, const char *info); /* use 0 to disable memory limit */ JS_EXTERN void JS_SetMemoryLimit(JSRuntime *rt, size_t limit); JS_EXTERN void JS_SetDumpFlags(JSRuntime *rt, uint64_t flags); +JS_EXTERN size_t JS_GetGCThreshold(JSRuntime *rt); +/* use 0 to disable automatic GC */ JS_EXTERN void JS_SetGCThreshold(JSRuntime *rt, size_t gc_threshold); /* use 0 to disable maximum stack size check */ JS_EXTERN void JS_SetMaxStackSize(JSRuntime *rt, size_t stack_size);