summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcbiesinger <cbiesinger@chromium.org>2015-10-20 17:08:00 -0700
committerCommit bot <commit-bot@chromium.org>2015-10-21 00:08:37 +0000
commit2f212f8ea8bab3ad6ec47451b9949ebb94b93fb6 (patch)
tree9f43bee8832fc8035ee29872de1d2b65ccbf2f16
parent0e59812ad761edd22e983166aee703a84996158b (diff)
downloadchromium_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.cpp13
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;
}
}