diff options
author | Daniel Silverstone <dsilvers@digital-scurf.org> | 2019-05-05 18:51:41 +0100 |
---|---|---|
committer | Daniel Silverstone <dsilvers@digital-scurf.org> | 2019-05-05 18:51:41 +0100 |
commit | 3ba50e85747d31deaa2c4c17950b46fc50019564 (patch) | |
tree | 2e8d5b7dde06ad92ac62016ce97afdf3fd6e19a2 /content/handlers/javascript/duktape | |
parent | ac512958ffb8382b7d7c76748dc69c7ea49baf70 (diff) | |
download | netsurf-3ba50e85747d31deaa2c4c17950b46fc50019564.tar.gz netsurf-3ba50e85747d31deaa2c4c17950b46fc50019564.tar.bz2 |
Force a GC to ensure old compartment goes away
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
Diffstat (limited to 'content/handlers/javascript/duktape')
-rw-r--r-- | content/handlers/javascript/duktape/dukky.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/content/handlers/javascript/duktape/dukky.c b/content/handlers/javascript/duktape/dukky.c index 2755a272f..8af3165b6 100644 --- a/content/handlers/javascript/duktape/dukky.c +++ b/content/handlers/javascript/duktape/dukky.c @@ -611,7 +611,11 @@ jsobject *js_newcompartment(jscontext *ctx, void *win_priv, void *doc_priv) NSLOG(dukky, DEBUG, "New javascript/duktape compartment, win_priv=%p, doc_priv=%p", win_priv, doc_priv); - duk_set_top(ctx->ctx, 0); + if (CTX != NULL) { + duk_set_top(ctx->ctx, 0); + duk_gc(ctx->ctx, 0); + duk_gc(ctx->ctx, DUK_GC_COMPACT); + } duk_push_thread(ctx->ctx); ctx->thread = duk_require_context(ctx->ctx, -1); duk_push_int(CTX, 0); |