diff options
author | cbiesinger <cbiesinger@chromium.org> | 2015-10-20 17:08:00 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-10-21 00:08:37 +0000 |
commit | 2f212f8ea8bab3ad6ec47451b9949ebb94b93fb6 (patch) | |
tree | 9f43bee8832fc8035ee29872de1d2b65ccbf2f16 | |
parent | 0e59812ad761edd22e983166aee703a84996158b (diff) | |
download | chromium_src-2f212f8ea8bab3ad6ec47451b9949ebb94b93fb6.zip chromium_src-2f212f8ea8bab3ad6ec47451b9949ebb94b93fb6.tar.gz chromium_src-2f212f8ea8bab3ad6ec47451b9949ebb94b93fb6.tar.bz2 |
[css-flexbox] Reuse childInnerFlexBaseSize instead of recomputing it
No point in doing this work twice.
R=leviw@chromium.org
Review URL: https://codereview.chromium.org/1415023002
Cr-Commit-Position: refs/heads/master@{#355190}
-rw-r--r-- | third_party/WebKit/Source/core/layout/LayoutFlexibleBox.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/third_party/WebKit/Source/core/layout/LayoutFlexibleBox.cpp b/third_party/WebKit/Source/core/layout/LayoutFlexibleBox.cpp index 47271a1..2855d67 100644 --- a/third_party/WebKit/Source/core/layout/LayoutFlexibleBox.cpp +++ b/third_party/WebKit/Source/core/layout/LayoutFlexibleBox.cpp @@ -59,14 +59,16 @@ struct LayoutFlexibleBox::LineContext { }; struct LayoutFlexibleBox::Violation { - Violation(LayoutBox* child, LayoutUnit childSize) + Violation(LayoutBox* child, LayoutUnit childSize, LayoutUnit childInnerFlexBaseSize) : child(child) , childSize(childSize) + , childInnerFlexBaseSize(childInnerFlexBaseSize) { } LayoutBox* child; LayoutUnit childSize; + LayoutUnit childInnerFlexBaseSize; }; @@ -960,10 +962,9 @@ void LayoutFlexibleBox::freezeViolations(const Vector<Violation>& violations, La for (size_t i = 0; i < violations.size(); ++i) { LayoutBox* child = violations[i].child; LayoutUnit childSize = violations[i].childSize; - LayoutUnit childInnerFlexBaseSize = computeInnerFlexBaseSizeForChild(*child); - availableFreeSpace -= childSize - childInnerFlexBaseSize; + availableFreeSpace -= childSize - violations[i].childInnerFlexBaseSize; totalFlexGrow -= child->style()->flexGrow(); - totalWeightedFlexShrink -= child->style()->flexShrink() * childInnerFlexBaseSize; + totalWeightedFlexShrink -= child->style()->flexShrink() * violations[i].childInnerFlexBaseSize; inflexibleItems.set(child, childSize); } } @@ -1009,9 +1010,9 @@ bool LayoutFlexibleBox::resolveFlexibleLengths(FlexSign flexSign, const OrderedF LayoutUnit violation = adjustedChildSize - childSize; if (violation > 0) - minViolations.append(Violation(child, adjustedChildSize)); + minViolations.append(Violation(child, adjustedChildSize, childInnerFlexBaseSize)); else if (violation < 0) - maxViolations.append(Violation(child, adjustedChildSize)); + maxViolations.append(Violation(child, adjustedChildSize, childInnerFlexBaseSize)); totalViolation += violation; } } |