Bug 650161 - Add moving GC callback and use it to fix up ipc CPOW tables r=terrence

This commit is contained in:
Jon Coppeard
2014-09-02 11:07:22 +02:00
parent 510f7fc33b
commit bc23226f38
9 changed files with 90 additions and 13 deletions

View File

@@ -27,6 +27,12 @@ TraceParent(JSTracer *trc, void *data)
static_cast<JavaScriptParent *>(data)->trace(trc);
}
static void
FixupParentAfterMovingGC(JSRuntime *rt, void *data)
{
static_cast<JavaScriptParent *>(data)->fixupAfterMovingGC();
}
JavaScriptParent::JavaScriptParent(JSRuntime *rt)
: JavaScriptShared(rt),
JavaScriptBase<PJavaScriptParent>(rt)
@@ -36,6 +42,7 @@ JavaScriptParent::JavaScriptParent(JSRuntime *rt)
JavaScriptParent::~JavaScriptParent()
{
JS_RemoveExtraGCRootsTracer(rt_, TraceParent, this);
JS_RemoveMovingGCCallback(rt_, FixupParentAfterMovingGC);
}
bool
@@ -45,6 +52,7 @@ JavaScriptParent::init()
return false;
JS_AddExtraGCRootsTracer(rt_, TraceParent, this);
JS_AddMovingGCCallback(rt_, FixupParentAfterMovingGC, this);
return true;
}