[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