зеркало из https://github.com/mozilla/gecko-dev.git
Backed out changeset b343790604a9 (bug 1261106
) for xpcshell failures in test_locale_data.js
This commit is contained in:
Родитель
81e4b87da3
Коммит
286ddca5f8
|
@ -433,50 +433,6 @@ mozilla::GetBuildId(JS::BuildIdCharVector* aBuildID)
|
|||
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()
|
||||
: mGCThingCycleCollectorGlobal(sGCThingCycleCollectorGlobal)
|
||||
, mJSZoneCycleCollectorGlobal(sJSZoneCycleCollectorGlobal)
|
||||
|
@ -515,14 +471,6 @@ CycleCollectedJSRuntime::~CycleCollectedJSRuntime()
|
|||
MOZ_ASSERT(mDebuggerPromiseMicroTaskQueue.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);
|
||||
mJSRuntime = nullptr;
|
||||
nsCycleCollector_forgetJSRuntime();
|
||||
|
@ -1087,6 +1035,50 @@ CycleCollectedJSRuntime::AddJSHolder(void* aHolder, nsScriptObjectTracer* aTrace
|
|||
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
|
||||
CycleCollectedJSRuntime::RemoveJSHolder(void* aHolder)
|
||||
{
|
||||
|
|
Загрузка…
Ссылка в новой задаче