tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 24d3d930c5d7aaa3e7ed520a1153e2f9c13ff4fa
parent bdf182dee332208b509bb7c9115cc4ff811333ec
Author: Emilio Cobos Álvarez <emilio@crisal.io>
Date:   Fri, 12 Dec 2025 13:01:18 +0000

Bug 2005569 - Simplify LazyAncestorHolder. r=layout-anchor-positioning-reviewers,layout-reviewers,dshin

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

Diffstat:
Mlayout/base/AnchorPositioningUtils.cpp | 20++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/layout/base/AnchorPositioningUtils.cpp b/layout/base/AnchorPositioningUtils.cpp @@ -320,21 +320,21 @@ bool IsPositionedElementAlsoSkippedWhenAnchorIsSkipped( return true; } -struct LazyAncestorHolder { +class LazyAncestorHolder { const nsIFrame* mFrame; - Maybe<nsTArray<const nsIFrame*>> mAncestors; - - explicit LazyAncestorHolder(const nsIFrame* aFrame) : mFrame(aFrame) {} + AutoTArray<const nsIFrame*, 8> mAncestors; + bool mFilled = false; + public: const nsTArray<const nsIFrame*>& GetAncestors() { - if (!mAncestors) { - AutoTArray<const nsIFrame*, 8> ancestors; - nsLayoutUtils::FillAncestors(mFrame, nullptr, &ancestors); - mAncestors.emplace(std::move(ancestors)); + if (!mFilled) { + nsLayoutUtils::FillAncestors(mFrame, nullptr, &mAncestors); + mFilled = true; } - - return *mAncestors; + return mAncestors; } + + explicit LazyAncestorHolder(const nsIFrame* aFrame) : mFrame(aFrame) {} }; bool IsAcceptableAnchorElement(