美好的一天!
FireWyrmJS返回的所有对象在Chrome中5秒后自动释放,但我需要保留一些对象与之交互。在Chrome扩展脚本中是否可以安全地停用该释放?或者可以过滤某种方式:要释放什么对象以及要保留哪些对象?
我在chrome-extension javascripts中看到保留()和发布()方法,但我需要一个chrome网页,即firefox,所以我希望更好的解决方案。
我将对象从插件返回到浏览器:
MyObjectPtr MyPluginAPI::getMyObj()
{
return std::make_shared<MyObject>(m_host);
}
我已经调试了它,并且在刷新网页时(Chrome中)调用了MyObject的析构函数。这样对吗?在那种情况下,插件中的真实对象存在,但由于5秒释放,我无法在网页中与其进行交互。
感谢您的任何建议。
答案 0 :(得分:0)
不幸的是,没有办法在javascript和firewyrm之间自动管理垃圾收集,因为当js对象是GC时没有办法得到通知。禁用该检查肯定是不安全 - 如果您这样做,最终会导致严重的内存泄漏。相反,您应该在要保留的对象上调用.retain()
(并在您不再需要时调用.release()
)。