mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-23 18:26:15 +00:00
Backed out changeset b343790604a9 (bug 1261106
) for xpcshell failures in test_locale_data.js
This commit is contained in:
parent
81e4b87da3
commit
286ddca5f8
@ -433,50 +433,6 @@ mozilla::GetBuildId(JS::BuildIdCharVector* aBuildID)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct ClearJSHolder : public TraceCallbacks
|
|
||||||
{
|
|
||||||
virtual void Trace(JS::Heap<JS::Value>* aPtr, const char*, void*) const override
|
|
||||||
{
|
|
||||||
aPtr->setUndefined();
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void Trace(JS::Heap<jsid>* aPtr, const char*, void*) const override
|
|
||||||
{
|
|
||||||
*aPtr = JSID_VOID;
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void Trace(JS::Heap<JSObject*>* aPtr, const char*, void*) const override
|
|
||||||
{
|
|
||||||
*aPtr = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void Trace(JSObject** aPtr, const char* aName,
|
|
||||||
void* aClosure) const override
|
|
||||||
{
|
|
||||||
*aPtr = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void Trace(JS::TenuredHeap<JSObject*>* aPtr, const char*, void*) const override
|
|
||||||
{
|
|
||||||
*aPtr = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void Trace(JS::Heap<JSString*>* aPtr, const char*, void*) const override
|
|
||||||
{
|
|
||||||
*aPtr = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void Trace(JS::Heap<JSScript*>* aPtr, const char*, void*) const override
|
|
||||||
{
|
|
||||||
*aPtr = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void Trace(JS::Heap<JSFunction*>* aPtr, const char*, void*) const override
|
|
||||||
{
|
|
||||||
*aPtr = nullptr;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
CycleCollectedJSRuntime::CycleCollectedJSRuntime()
|
CycleCollectedJSRuntime::CycleCollectedJSRuntime()
|
||||||
: mGCThingCycleCollectorGlobal(sGCThingCycleCollectorGlobal)
|
: mGCThingCycleCollectorGlobal(sGCThingCycleCollectorGlobal)
|
||||||
, mJSZoneCycleCollectorGlobal(sJSZoneCycleCollectorGlobal)
|
, mJSZoneCycleCollectorGlobal(sJSZoneCycleCollectorGlobal)
|
||||||
@ -515,14 +471,6 @@ CycleCollectedJSRuntime::~CycleCollectedJSRuntime()
|
|||||||
MOZ_ASSERT(mDebuggerPromiseMicroTaskQueue.empty());
|
MOZ_ASSERT(mDebuggerPromiseMicroTaskQueue.empty());
|
||||||
MOZ_ASSERT(mPromiseMicroTaskQueue.empty());
|
MOZ_ASSERT(mPromiseMicroTaskQueue.empty());
|
||||||
|
|
||||||
for (auto iter = mJSHolders.Iter(); !iter.Done(); iter.Next()) {
|
|
||||||
void* holder = iter.Key();
|
|
||||||
nsScriptObjectTracer*& tracer = iter.Data();
|
|
||||||
tracer->Trace(holder, ClearJSHolder(), nullptr);
|
|
||||||
|
|
||||||
}
|
|
||||||
mJSHolders.Clear();
|
|
||||||
|
|
||||||
JS_DestroyRuntime(mJSRuntime);
|
JS_DestroyRuntime(mJSRuntime);
|
||||||
mJSRuntime = nullptr;
|
mJSRuntime = nullptr;
|
||||||
nsCycleCollector_forgetJSRuntime();
|
nsCycleCollector_forgetJSRuntime();
|
||||||
@ -1087,6 +1035,50 @@ CycleCollectedJSRuntime::AddJSHolder(void* aHolder, nsScriptObjectTracer* aTrace
|
|||||||
mJSHolders.Put(aHolder, aTracer);
|
mJSHolders.Put(aHolder, aTracer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct ClearJSHolder : public TraceCallbacks
|
||||||
|
{
|
||||||
|
virtual void Trace(JS::Heap<JS::Value>* aPtr, const char*, void*) const override
|
||||||
|
{
|
||||||
|
aPtr->setUndefined();
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void Trace(JS::Heap<jsid>* aPtr, const char*, void*) const override
|
||||||
|
{
|
||||||
|
*aPtr = JSID_VOID;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void Trace(JS::Heap<JSObject*>* aPtr, const char*, void*) const override
|
||||||
|
{
|
||||||
|
*aPtr = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void Trace(JSObject** aPtr, const char* aName,
|
||||||
|
void* aClosure) const override
|
||||||
|
{
|
||||||
|
*aPtr = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void Trace(JS::TenuredHeap<JSObject*>* aPtr, const char*, void*) const override
|
||||||
|
{
|
||||||
|
*aPtr = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void Trace(JS::Heap<JSString*>* aPtr, const char*, void*) const override
|
||||||
|
{
|
||||||
|
*aPtr = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void Trace(JS::Heap<JSScript*>* aPtr, const char*, void*) const override
|
||||||
|
{
|
||||||
|
*aPtr = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void Trace(JS::Heap<JSFunction*>* aPtr, const char*, void*) const override
|
||||||
|
{
|
||||||
|
*aPtr = nullptr;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
void
|
void
|
||||||
CycleCollectedJSRuntime::RemoveJSHolder(void* aHolder)
|
CycleCollectedJSRuntime::RemoveJSHolder(void* aHolder)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user