2016-08-30 7 views
0

おやすみ!FB-2.0のGC機構はプラグインオブジェクトをリリースしていますか?

FireWyrmJSから返されるすべてのオブジェクトは、Chromeで5秒後に自動的に解放されますが、オブジェクトとのやりとりが必要です。 chrome-extensionスクリプトでそのリリースを無効にするのは安全ですか?または、何らかの方法でフィルタリングすることが可能であるかもしれません:解放するオブジェクトと保持するオブジェクト

私はクロームの拡張JavaScriptの中保持()とリリース()メソッドを見てきましたが、私はクローム、IEとFirefoxのための一つのウェブページを必要とするので、私はよりよい解決策を期待しています。

私はブラウザにプラグインから次の方法でオブジェクトを返す:

MyObjectPtr MyPluginAPI::getMyObj() 
{ 
    return std::make_shared<MyObject>(m_host); 
} 

Iは、Webページが(クロームに)更新されたときにMyObjectにのデストラクタが呼び出されていること、それをデバッグしてもらいました。そうですか?その場合、プラグインの実際のオブジェクトは存在しますが、5秒間リリースされるため、Webページでは対話できません。

アドバイスありがとうございます。

答えて

0

残念ながら、jsオブジェクトがGCされたときに通知される方法がないため、javascriptとfirewyrmの間で自動的にガベージコレクションを管理する方法はありません。確かにではなく、でこのチェックを無効にしても問題ありません。もしあなたが重大なメモリリークを起こすようなら、代わりに、保持するオブジェクトの.retain()に電話する必要があります(不要な場合は.release())。

+0

ありがとうございました。 – Dmitrii

関連する問題