2016-08-30 7 views
0

안녕하세요!FB-2.0의 GC 메커니즘은 플러그인 객체를 어떻게 릴리스합니까?

FireWyrmJS에서 반환하는 모든 객체는 Chrome에서 5 초 후에 자동으로 해제되지만 일부 객체는 상호 작용할 필요가 있습니다. 크롬 확장 스크립트에서이 해제를 비활성화하는 것이 안전합니까? 또는 어떤 방법으로 필터링 할 수 있습니까? 어떤 개체를 해제하고 어떤 개체를 유지해야합니까?

나는 크롬 확장 자바 스크립트에서 유지()와 출시() 메소드를 보았다하지만 난 크롬, IE와 파이어 폭스를위한 하나의 웹 페이지가 필요합니다, 그래서 더 나은 솔루션을 바랍니다. 나는 웹 페이지 (크롬에서) 새로 고칠 때 호출되고 그것을 디버깅 및 MyObject를의 소멸자 왔

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

:

나는 브라우저 플러그인에서 다음 방법으로 개체를 반환. 맞아? 이 경우에는 플러그인의 실제 개체가 있지만 5 초 간격으로 웹 페이지에서 상호 작용할 수 없습니다.

모든 조언을 주셔서 감사합니다.

답변

0

불행히도 js 개체가 GC 될 때 알림을받을 방법이 없으므로 불행히도 javascript와 firewyrm 사이의 가비지 수집을 자동으로 관리 할 수있는 방법이 없습니다. 분명히 이 아니고이 체크를 해제해도 안전합니다. 만약 당신이 심각한 메모리 누수로 끝날지라도. 대신에 잡고 자하는 대상에 .retain() (및 더 이상 필요하지 않은 경우 .release())으로 전화해야합니다.

+0

감사합니다. – Dmitrii