WebKit Bugzilla
Attachment 360185 Details for
Bug 193855
: [LFC] Box::nextInFlowOrFloatingSibling() should always return sibling floats as well.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-193855-20190125162356.patch (text/plain), 3.18 KB, created by
zalan
on 2019-01-25 16:24:05 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
zalan
Created:
2019-01-25 16:24:05 PST
Size:
3.18 KB
patch
obsolete
>Subversion Revision: 240475 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index c0cb1b26607946cafe83cec7efc557c8bec5d80d..f400e3b24d8a2980aa5bd3a5f0973913208ad0f0 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,15 @@ >+2019-01-25 Zalan Bujtas <zalan@apple.com> >+ >+ [LFC] Box::nextInFlowOrFloatingSibling() should always return sibling floats as well. >+ https://bugs.webkit.org/show_bug.cgi?id=193855 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Use iterative algorithm to find next/previous siblings. >+ >+ * layout/layouttree/LayoutBox.cpp: >+ (WebCore::Layout::Box::nextInFlowOrFloatingSibling const): >+ > 2019-01-25 Zalan Bujtas <zalan@apple.com> > > [LFC][BFC][MarginCollapsing] Add "clear" to static position computation. >diff --git a/Source/WebCore/layout/layouttree/LayoutBox.cpp b/Source/WebCore/layout/layouttree/LayoutBox.cpp >index 50f977da7b29ad34200965260d4a50ddcaed2898..6d05903d416abffc753380b1258215a745cec173 100644 >--- a/Source/WebCore/layout/layouttree/LayoutBox.cpp >+++ b/Source/WebCore/layout/layouttree/LayoutBox.cpp >@@ -222,42 +222,34 @@ bool Box::isInitialContainingBlock() const > > const Box* Box::nextInFlowSibling() const > { >- if (auto* nextSibling = this->nextSibling()) { >- if (nextSibling->isInFlow()) >- return nextSibling; >- return nextSibling->nextInFlowSibling(); >- } >- return nullptr; >+ auto* nextSibling = this->nextSibling(); >+ while (nextSibling && !nextSibling->isInFlow()) >+ nextSibling = nextSibling->nextSibling(); >+ return nextSibling; > } > > const Box* Box::nextInFlowOrFloatingSibling() const > { >- if (auto* nextSibling = this->nextSibling()) { >- if (nextSibling->isInFlow() || nextSibling->isFloatingPositioned()) >- return nextSibling; >- return nextSibling->nextInFlowSibling(); >- } >- return nullptr; >+ auto* nextSibling = this->nextSibling(); >+ while (nextSibling && !(nextSibling->isInFlow() || nextSibling->isFloatingPositioned())) >+ nextSibling = nextSibling->nextSibling(); >+ return nextSibling; > } > > const Box* Box::previousInFlowSibling() const > { >- if (auto* previousSibling = this->previousSibling()) { >- if (previousSibling->isInFlow()) >- return previousSibling; >- return previousSibling->previousInFlowSibling(); >- } >- return nullptr; >+ auto* previousSibling = this->previousSibling(); >+ while (previousSibling && !previousSibling->isInFlow()) >+ previousSibling = previousSibling->previousSibling(); >+ return previousSibling; > } > > const Box* Box::previousInFlowOrFloatingSibling() const > { >- if (auto* previousSibling = this->previousSibling()) { >- if (previousSibling->isInFlow() || previousSibling->isFloatingPositioned()) >- return previousSibling; >- return previousSibling->previousInFlowOrFloatingSibling(); >- } >- return nullptr; >+ auto* previousSibling = this->previousSibling(); >+ while (previousSibling && !(previousSibling->isInFlow() || previousSibling->isFloatingPositioned())) >+ previousSibling = previousSibling->previousSibling(); >+ return previousSibling; > } > > bool Box::isOverflowVisible() const
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
koivisto
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 193855
: 360185