author | Daniel Holbert <dholbert@cs.stanford.edu> |
Mon, 30 Sep 2013 20:30:24 -0700 | |
changeset 149409 | 111be6d857e12fc2263f8c84f5df2f7c26a2fb3e |
parent 149408 | 3b0cd8c4e0a4ae45c9076d74f73b80abf96b6ff3 |
child 149410 | 6856c45f3688d817181cd0b9c99a0533dcb5965a |
child 149424 | eedf61cab3fa8be11c865eddb39fb0d952234027 |
push id | 25386 |
push user | emorley@mozilla.com |
push date | Tue, 01 Oct 2013 09:29:22 +0000 |
treeherder | mozilla-central@6856c45f3688 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | mats |
bugs | 922410 |
milestone | 27.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/layout/generic/nsFlexContainerFrame.cpp +++ b/layout/generic/nsFlexContainerFrame.cpp @@ -1498,26 +1498,27 @@ MainAxisPositionTracker:: { MOZ_ASSERT(aReflowState.frame == aFlexContainerFrame, "Expecting the reflow state for the flex container frame"); // mPackingSpaceRemaining is initialized to the container's main size. Now // we'll subtract out the main sizes of our flex items, so that it ends up // with the *actual* amount of packing space. for (uint32_t i = 0; i < aItems.Length(); i++) { + const FlexItem& curItem = aItems[i]; nscoord itemMarginBoxMainSize = - aItems[i].GetMainSize() + - aItems[i].GetMarginBorderPaddingSizeInAxis(aAxisTracker.GetMainAxis()); + curItem.GetMainSize() + + curItem.GetMarginBorderPaddingSizeInAxis(aAxisTracker.GetMainAxis()); mPackingSpaceRemaining -= itemMarginBoxMainSize; + mNumAutoMarginsInMainAxis += curItem.GetNumAutoMarginsInAxis(mAxis); } - if (mPackingSpaceRemaining > 0) { - for (uint32_t i = 0; i < aItems.Length(); i++) { - mNumAutoMarginsInMainAxis += aItems[i].GetNumAutoMarginsInAxis(mAxis); - } + if (mPackingSpaceRemaining <= 0) { + // No available packing space to use for resolving auto margins. + mNumAutoMarginsInMainAxis = 0; } mJustifyContent = aFlexContainerFrame->StylePosition()->mJustifyContent; // If packing space is negative, 'justify' behaves like 'start', and // 'distribute' behaves like 'center'. In those cases, it's simplest to // just pretend we have a different 'justify-content' value and share code. if (mPackingSpaceRemaining < 0) { if (mJustifyContent == NS_STYLE_JUSTIFY_CONTENT_SPACE_BETWEEN) {