diff --git a/layout/base/PresShell.cpp b/layout/base/PresShell.cpp index 046e409159de..0b38c9bfe9d1 100644 --- a/layout/base/PresShell.cpp +++ b/layout/base/PresShell.cpp @@ -3184,22 +3184,20 @@ nsresult PresShell::GoToAnchor(const nsAString& aAnchorName, bool aScroll, } nsresult PresShell::ScrollToAnchor() { - if (!mLastAnchorScrolledTo) { + nsCOMPtr lastAnchor = mLastAnchorScrolledTo.forget(); + if (!lastAnchor) { return NS_OK; } - NS_ASSERTION(mDidInitialize, "should have done initial reflow by now"); + NS_ASSERTION(mDidInitialize, "should have done initial reflow by now"); nsIScrollableFrame* rootScroll = GetRootScrollFrameAsScrollable(); if (!rootScroll || mLastAnchorScrollPositionY != rootScroll->GetScrollPosition().y) { return NS_OK; } - nsCOMPtr lastAnchorScrollTo = mLastAnchorScrolledTo; - nsresult rv = ScrollContentIntoView( - lastAnchorScrollTo, ScrollAxis(kScrollToTop, WhenToScroll::Always), - ScrollAxis(), ScrollFlags::AnchorScrollFlags); - mLastAnchorScrolledTo = nullptr; - return rv; + return ScrollContentIntoView(lastAnchor, + ScrollAxis(kScrollToTop, WhenToScroll::Always), + ScrollAxis(), ScrollFlags::AnchorScrollFlags); } /*