[webkit-changes] [WebKit/WebKit] fcf31d: [IFC] LineBuilder should not mutate layout state
Alan Baradlay
noreply at github.com
Mon Jun 12 09:01:25 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: fcf31d44502327958ad401ab2398b7a0d317e65b
https://github.com/WebKit/WebKit/commit/fcf31d44502327958ad401ab2398b7a0d317e65b
Author: Alan Baradlay <zalan at apple.com>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.cpp
M Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp
M Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.h
Log Message:
-----------
[IFC] LineBuilder should not mutate layout state
https://bugs.webkit.org/show_bug.cgi?id=257930
Reviewed by Antti Koivisto.
In case of line layout probing (when line builder is called multiple times with different constraint values),
we can pass in clean FloatingState for each round (the only state/geometry that gets mutated currently -see FIXME).
Regular layout would just pass in the floating state from the parent block formatting context.
* Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const):
* Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::LineBuilder):
* Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.h:
(WebCore::Layout::LineBuilder::blockLayoutState const):
(WebCore::Layout::LineBuilder::floatingState):
Canonical link: https://commits.webkit.org/265071@main
More information about the webkit-changes
mailing list