Merge remote-tracking branch 'origin/master' into custom

This commit is contained in:
roytam1 2021-08-12 23:51:42 +08:00
commit 220d2b4474
2 changed files with 9 additions and 4 deletions

View file

@ -4339,6 +4339,11 @@ WorkerPrivate::Constructor(JSContext* aCx,
return nullptr; return nullptr;
} }
// From this point on (worker thread has been started) we
// must keep ourself alive. We can now only be cleared by
// ClearSelfAndParentEventTargetRef().
worker->mSelfRef = worker;
worker->EnableDebugger(); worker->EnableDebugger();
RefPtr<CompileScriptRunnable> compiler = RefPtr<CompileScriptRunnable> compiler =
@ -4348,8 +4353,6 @@ WorkerPrivate::Constructor(JSContext* aCx,
return nullptr; return nullptr;
} }
worker->mSelfRef = worker;
return worker.forget(); return worker.forget();
} }

View file

@ -327,7 +327,8 @@ private:
void setNextUnsafe(RawType aElem) void setNextUnsafe(RawType aElem)
{ {
LinkedListElement *listElem = static_cast<LinkedListElement*>(aElem); LinkedListElement *listElem = static_cast<LinkedListElement*>(aElem);
MOZ_ASSERT(!listElem->isInList()); if (listElem->isInList())
return;
listElem->mNext = this->mNext; listElem->mNext = this->mNext;
listElem->mPrev = this; listElem->mPrev = this;
@ -344,7 +345,8 @@ private:
void setPreviousUnsafe(RawType aElem) void setPreviousUnsafe(RawType aElem)
{ {
LinkedListElement<T>* listElem = static_cast<LinkedListElement<T>*>(aElem); LinkedListElement<T>* listElem = static_cast<LinkedListElement<T>*>(aElem);
MOZ_ASSERT(!listElem->isInList()); if (listElem->isInList())
return;
listElem->mNext = this; listElem->mNext = this;
listElem->mPrev = this->mPrev; listElem->mPrev = this->mPrev;