防止 Spidermonkey Javascript 引擎中的垃圾回收

Preventing Garbage Collection in the Spidermonkey Javascript Engine

本文关键字:Spidermonkey Javascript 引擎 防止      更新时间:2023-09-26

根据蜘蛛猴的用户指南

https://developer.mozilla.org/En/SpiderMonkey/JSAPI_User_Guide

。JSVAL 本身并不能保护其引用对象免受垃圾攻击 收藏家。。。

我对这个语句的理解是,如果我们创建一个JSString,比如说,JS_NewStringCopyZ(),返回的值可以随时被gc。

JSString *str=JS_NewStringCopyZ(cx, "hello world");
JS_GC(cx);
//..now my "hello world" JSString is gone

那么我们如何防止上面的str被gc'ed呢? 我注意到有一个 JS_EnterLocalRootScope () 函数,我可以在 JSNative 函数开始时调用它。 不幸的是,它现在已被弃用。 那么预防GC的正确方法应该是什么?

我认为这是蜘蛛猴上垃圾收集器问题的副本......JS_AnchorPtr()?- 那里的答案显示了在使用SpiderMonkey作为共享库时如何锚定指针以使它们在GC中保持活力。如果这不能回答您的问题,请编辑以澄清。