Bug 1613095 - Unlink more Document fields r=mccr8

I removed traverse and unlink for mChannel and mLayoutHistoryState since the initial review said these were unnecessary.

Differential Revision: https://phabricator.services.mozilla.com/D61561

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Jon Coppeard 2020-03-12 15:06:36 +00:00
Родитель c2bab68f43
Коммит 782a91ebba
2 изменённых файлов: 23 добавлений и 8 удалений

Просмотреть файл

@ -2140,8 +2140,6 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INTERNAL(Document)
DocumentOrShadowRoot::Traverse(tmp, cb);
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mChannel)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mLayoutHistoryState)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mOnloadBlocker)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mLazyLoadImageObserver)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mDOMImplementation)
@ -2250,11 +2248,23 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(Document)
tmp->UnlinkOriginalDocumentIfStatic();
tmp->mCachedRootElement = nullptr; // Avoid a dangling pointer
tmp->SetScriptGlobalObject(nullptr);
NS_IMPL_CYCLE_COLLECTION_UNLINK(mSecurityInfo)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mDisplayDocument)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mLazyLoadImageObserver)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mFontFaceSet)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mReadyForIdle)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mDocumentL10n)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mParser)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mOnloadBlocker)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mDOMImplementation)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mImageMaps)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mOrientationPendingPromise)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mOriginalDocument)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mCachedEncoder)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mStateObjectCached)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mDocumentTimeline)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mPendingAnimationTracker)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mTemplateContentsOwner)
@ -2266,18 +2276,20 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(Document)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mScripts);
NS_IMPL_CYCLE_COLLECTION_UNLINK(mApplets);
NS_IMPL_CYCLE_COLLECTION_UNLINK(mAnchors);
NS_IMPL_CYCLE_COLLECTION_UNLINK(mOrientationPendingPromise)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mFontFaceSet)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mReadyForIdle);
NS_IMPL_CYCLE_COLLECTION_UNLINK(mAnonymousContents)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mCommandDispatcher)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mDocumentL10n);
NS_IMPL_CYCLE_COLLECTION_UNLINK(mFeaturePolicy)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mSuppressedEventListener)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mPrototypeDocument)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mMidasCommandManager)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mAll)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mReferrerInfo)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mPreloadReferrerInfo)
if (tmp->IsTopLevelContentDocument()) {
RemoveToplevelLoadingDocument(tmp);
}
tmp->mParentDocument = nullptr;
NS_IMPL_CYCLE_COLLECTION_UNLINK(mPreloadingImages)
@ -16110,6 +16122,7 @@ void Document::SetIsInitialDocument(bool aIsInitialDocument) {
}
}
// static
void Document::AddToplevelLoadingDocument(Document* aDoc) {
MOZ_ASSERT(aDoc && aDoc->IsTopLevelContentDocument());
// Currently we're interested in foreground documents only, so bail out early.
@ -16130,6 +16143,7 @@ void Document::AddToplevelLoadingDocument(Document* aDoc) {
}
}
// static
void Document::RemoveToplevelLoadingDocument(Document* aDoc) {
MOZ_ASSERT(aDoc && aDoc->IsTopLevelContentDocument());
if (sLoadingForegroundTopLevelContentDocument) {

Просмотреть файл

@ -4172,9 +4172,10 @@ class Document : public nsINode,
already_AddRefed<nsIChannel> CreateDummyChannelForCookies(
nsIURI* aContentURI);
void AddToplevelLoadingDocument(Document* aDoc);
void RemoveToplevelLoadingDocument(Document* aDoc);
static void AddToplevelLoadingDocument(Document* aDoc);
static void RemoveToplevelLoadingDocument(Document* aDoc);
static AutoTArray<Document*, 8>* sLoadingForegroundTopLevelContentDocument;
friend class cycleCollection;
nsCOMPtr<nsIReferrerInfo> mPreloadReferrerInfo;
nsCOMPtr<nsIReferrerInfo> mReferrerInfo;