Bug 1311212 - Add dead CPOW debugging facility (r=mrbkap)
This commit is contained in:
@@ -26,10 +26,17 @@ UpdateChildWeakPointersBeforeSweepingZoneGroup(JSContext* cx, void* data)
|
||||
static_cast<JavaScriptChild*>(data)->updateWeakPointers();
|
||||
}
|
||||
|
||||
static void
|
||||
TraceChild(JSTracer* trc, void* data)
|
||||
{
|
||||
static_cast<JavaScriptChild*>(data)->trace(trc);
|
||||
}
|
||||
|
||||
JavaScriptChild::~JavaScriptChild()
|
||||
{
|
||||
JSContext* cx = dom::danger::GetJSContext();
|
||||
JS_RemoveWeakPointerZoneGroupCallback(cx, UpdateChildWeakPointersBeforeSweepingZoneGroup);
|
||||
JS_RemoveExtraGCRootsTracer(cx, TraceChild, this);
|
||||
}
|
||||
|
||||
bool
|
||||
@@ -42,9 +49,16 @@ JavaScriptChild::init()
|
||||
|
||||
JSContext* cx = dom::danger::GetJSContext();
|
||||
JS_AddWeakPointerZoneGroupCallback(cx, UpdateChildWeakPointersBeforeSweepingZoneGroup, this);
|
||||
JS_AddExtraGCRootsTracer(cx, TraceChild, this);
|
||||
return true;
|
||||
}
|
||||
|
||||
void
|
||||
JavaScriptChild::trace(JSTracer* trc)
|
||||
{
|
||||
objects_.trace(trc, strongReferenceObjIdMinimum_);
|
||||
}
|
||||
|
||||
void
|
||||
JavaScriptChild::updateWeakPointers()
|
||||
{
|
||||
@@ -61,6 +75,13 @@ JavaScriptChild::scopeForTargetObjects()
|
||||
return xpc::PrivilegedJunkScope();
|
||||
}
|
||||
|
||||
bool
|
||||
JavaScriptChild::RecvDropTemporaryStrongReferences(const uint64_t& upToObjId)
|
||||
{
|
||||
strongReferenceObjIdMinimum_ = upToObjId + 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
PJavaScriptChild*
|
||||
mozilla::jsipc::NewJavaScriptChild()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user