Bug 1278058 Part 1: Make AlignJustifySelf return the calculated offset. r?mats draft
authorBrad Werth <bwerth@mozilla.com>
Tue, 15 Nov 2016 12:10:05 -0800
changeset 446853 5261784b6a67fbe53bf2bc90299b742ea5563abe
parent 446527 3853c539a1b7c803f1075d2c3ecefbdd314af1d8
child 446854 8cfadf36c515a296f8b5c1a645ac704628ceed5d
push id37899
push userbwerth@mozilla.com
push dateThu, 01 Dec 2016 23:55:16 +0000
reviewersmats
bugs1278058
milestone53.0a1
Bug 1278058 Part 1: Make AlignJustifySelf return the calculated offset. r?mats MozReview-Commit-ID: JcNT4lSoIGZ
layout/generic/nsGridContainerFrame.cpp
--- a/layout/generic/nsGridContainerFrame.cpp
+++ b/layout/generic/nsGridContainerFrame.cpp
@@ -2614,17 +2614,17 @@ GetDisplayFlagsForGridItem(nsIFrame* aFr
   const nsStylePosition* pos = aFrame->StylePosition();
   if (pos->mZIndex.GetUnit() == eStyleUnit_Integer) {
     return nsIFrame::DISPLAY_CHILD_FORCE_STACKING_CONTEXT;
   }
   return nsIFrame::DISPLAY_CHILD_FORCE_PSEUDO_STACKING_CONTEXT;
 }
 
 // Align an item's margin box in its aAxis inside aCBSize.
-static void
+static nscoord
 AlignJustifySelf(uint8_t aAlignment, LogicalAxis aAxis,
                  AlignJustifyFlags aFlags,
                  nscoord aBaselineAdjust, nscoord aCBSize,
                  const ReflowInput& aRI, const LogicalSize& aChildSize,
                  LogicalPoint* aPos)
 {
   MOZ_ASSERT(aAlignment != NS_STYLE_ALIGN_AUTO, "unexpected 'auto' "
              "computed value for normal flow grid item");
@@ -2636,19 +2636,21 @@ AlignJustifySelf(uint8_t aAlignment, Log
                                     aRI, aChildSize);
 
   // Set the position (aPos) for the requested alignment.
   if (offset != 0) {
     WritingMode wm = aRI.GetWritingMode();
     nscoord& pos = aAxis == eLogicalAxisBlock ? aPos->B(wm) : aPos->I(wm);
     pos += MOZ_LIKELY(aFlags & AlignJustifyFlags::eSameSide) ? offset : -offset;
   }
+
+  return offset;
 }
 
-static void
+static nscoord
 AlignSelf(const nsGridContainerFrame::GridItemInfo& aGridItem,
           uint8_t aAlignSelf, nscoord aCBSize, const WritingMode aCBWM,
           const ReflowInput& aRI, const LogicalSize& aSize,
           LogicalPoint* aPos)
 {
   auto alignSelf = aAlignSelf;
 
   AlignJustifyFlags flags = AlignJustifyFlags::eNoFlags;
@@ -2674,21 +2676,21 @@ AlignSelf(const nsGridContainerFrame::Gr
   if (alignSelf == NS_STYLE_ALIGN_BASELINE ||
       alignSelf == NS_STYLE_ALIGN_LAST_BASELINE) {
     alignSelf = aGridItem.GetSelfBaseline(alignSelf, eLogicalAxisBlock,
                                           &baselineAdjust);
   }
 
   bool isOrthogonal = aCBWM.IsOrthogonalTo(childWM);
   LogicalAxis axis = isOrthogonal ? eLogicalAxisInline : eLogicalAxisBlock;
-  AlignJustifySelf(alignSelf, axis, flags, baselineAdjust,
-                   aCBSize, aRI, aSize, aPos);
+  return AlignJustifySelf(alignSelf, axis, flags, baselineAdjust,
+                          aCBSize, aRI, aSize, aPos);
 }
 
-static void
+static nscoord
 JustifySelf(const nsGridContainerFrame::GridItemInfo& aGridItem,
             uint8_t aJustifySelf, nscoord aCBSize, const WritingMode aCBWM,
             const ReflowInput& aRI, const LogicalSize& aSize,
             LogicalPoint* aPos)
 {
   auto justifySelf = aJustifySelf;
 
   AlignJustifyFlags flags = AlignJustifyFlags::eNoFlags;
@@ -2722,18 +2724,18 @@ JustifySelf(const nsGridContainerFrame::
     case NS_STYLE_JUSTIFY_LAST_BASELINE:
       justifySelf = aGridItem.GetSelfBaseline(justifySelf, eLogicalAxisInline,
                                               &baselineAdjust);
       break;
   }
 
   bool isOrthogonal = aCBWM.IsOrthogonalTo(childWM);
   LogicalAxis axis = isOrthogonal ? eLogicalAxisBlock : eLogicalAxisInline;
-  AlignJustifySelf(justifySelf, axis, flags, baselineAdjust,
-                   aCBSize, aRI, aSize, aPos);
+  return AlignJustifySelf(justifySelf, axis, flags, baselineAdjust,
+                          aCBSize, aRI, aSize, aPos);
 }
 
 static uint16_t
 GetAlignJustifyValue(uint16_t aAlignment, const WritingMode aWM,
                      const bool aIsAlign, bool* aOverflowSafe)
 {
   *aOverflowSafe = aAlignment & NS_STYLE_ALIGN_SAFE;
   aAlignment &= (NS_STYLE_ALIGN_ALL_BITS & ~NS_STYLE_ALIGN_FLAG_BITS);