Bug 1341703 - Part 3. Change the latest parameter of CreateBorderImageRenderer from 'DrawResult *' to 'DrawResult &'. draft
authorcku <cku@mozilla.com>
Mon, 17 Apr 2017 15:13:31 +0800
changeset 563583 ed93b4179667ff0adf2e91ed5c634b8426d39319
parent 563582 cb601af95879fb89d17917828c1e41fda2ad8d57
child 563584 efdea03cb445d1ccfc9b0d7b6a392490795e293a
push id54355
push userbmo:cku@mozilla.com
push dateMon, 17 Apr 2017 09:14:24 +0000
bugs1341703
milestone55.0a1
Bug 1341703 - Part 3. Change the latest parameter of CreateBorderImageRenderer from 'DrawResult *' to 'DrawResult &'. MozReview-Commit-ID: FAb6f4sQ3Pm
layout/painting/nsCSSRendering.cpp
layout/painting/nsCSSRenderingBorders.cpp
layout/painting/nsCSSRenderingBorders.h
layout/painting/nsDisplayList.cpp
--- a/layout/painting/nsCSSRendering.cpp
+++ b/layout/painting/nsCSSRendering.cpp
@@ -826,17 +826,17 @@ nsCSSRendering::PaintBorderWithStyleBord
     uint32_t irFlags = 0;
     if (aFlags & PaintBorderFlags::SYNC_DECODE_IMAGES) {
       irFlags |= nsImageRenderer::FLAG_SYNC_DECODE_IMAGES;
     }
 
     Maybe<nsCSSBorderImageRenderer> renderer =
       nsCSSBorderImageRenderer::CreateBorderImageRenderer(aPresContext, aForFrame, aBorderArea,
                                                           aStyleBorder, aDirtyRect, aSkipSides,
-                                                          irFlags, &result);
+                                                          irFlags, result);
     if (!renderer) {
       return result;
     }
 
     return renderer->DrawBorderImage(aPresContext, aRenderingContext,
                                      aForFrame, aDirtyRect);
   }
 
--- a/layout/painting/nsCSSRenderingBorders.cpp
+++ b/layout/painting/nsCSSRenderingBorders.cpp
@@ -3578,44 +3578,43 @@ nsCSSBorderRenderer::CreateWebRenderComm
 /* static */Maybe<nsCSSBorderImageRenderer>
 nsCSSBorderImageRenderer::CreateBorderImageRenderer(nsPresContext* aPresContext,
                                                     nsIFrame* aForFrame,
                                                     const nsRect& aBorderArea,
                                                     const nsStyleBorder& aStyleBorder,
                                                     const nsRect& aDirtyRect,
                                                     Sides aSkipSides,
                                                     uint32_t aFlags,
-                                                    DrawResult* aDrawResult)
+                                                    DrawResult& aDrawResult)
 {
   NS_PRECONDITION(aStyleBorder.IsBorderImageLoaded(),
                   "drawing border image that isn't successfully loaded");
-  MOZ_ASSERT(aDrawResult);
 
   if (aDirtyRect.IsEmpty()) {
-    *aDrawResult = DrawResult::SUCCESS;
+    aDrawResult = DrawResult::SUCCESS;
     return Nothing();
   }
 
   nsImageRenderer imgRenderer(aForFrame, &aStyleBorder.mBorderImageSource, aFlags);
   if (!imgRenderer.PrepareImage()) {
-    *aDrawResult = imgRenderer.PrepareResult();
+    aDrawResult = imgRenderer.PrepareResult();
     return Nothing();
   }
 
   // Ensure we get invalidated for loads and animations of the image.
   // We need to do this here because this might be the only code that
   // knows about the association of the style data with the frame.
   // XXX We shouldn't really... since if anybody is passing in a
   // different style, they'll potentially have the wrong size for the
   // border too.
   aForFrame->AssociateImage(aStyleBorder.mBorderImageSource, aPresContext);
 
   nsCSSBorderImageRenderer renderer(aForFrame, aBorderArea,
                                     aStyleBorder, aSkipSides, imgRenderer);
-  *aDrawResult = DrawResult::SUCCESS;
+  aDrawResult = DrawResult::SUCCESS;
   return Some(renderer);
 }
 
 DrawResult
 nsCSSBorderImageRenderer::DrawBorderImage(nsPresContext* aPresContext,
                                           nsRenderingContext& aRenderingContext,
                                           nsIFrame* aForFrame,
                                           const nsRect& aDirtyRect)
--- a/layout/painting/nsCSSRenderingBorders.h
+++ b/layout/painting/nsCSSRenderingBorders.h
@@ -286,17 +286,17 @@ public:
   static mozilla::Maybe<nsCSSBorderImageRenderer>
   CreateBorderImageRenderer(nsPresContext* aPresContext,
                             nsIFrame* aForFrame,
                             const nsRect& aBorderArea,
                             const nsStyleBorder& aStyleBorder,
                             const nsRect& aDirtyRect,
                             nsIFrame::Sides aSkipSides,
                             uint32_t aFlags,
-                            mozilla::image::DrawResult* aDrawResult);
+                            mozilla::image::DrawResult& aDrawResult);
 
   mozilla::image::DrawResult
   DrawBorderImage(nsPresContext* aPresContext,
                   nsRenderingContext& aRenderingContext,
                   nsIFrame* aForFrame,
                   const nsRect& aDirtyRect);
 
   nsCSSBorderImageRenderer(const nsCSSBorderImageRenderer& aRhs);
--- a/layout/painting/nsDisplayList.cpp
+++ b/layout/painting/nsDisplayList.cpp
@@ -4640,26 +4640,26 @@ nsDisplayBorder::GetLayerState(nsDisplay
         return LAYER_NONE;
       }
 
       uint32_t flags = 0;
       if (aBuilder->ShouldSyncDecodeImages()) {
         flags |= nsImageRenderer::FLAG_SYNC_DECODE_IMAGES;
       }
 
-      image::DrawResult result;
+      image::DrawResult result = DrawResult::SUCCESS;
       mBorderImageRenderer =
         nsCSSBorderImageRenderer::CreateBorderImageRenderer(mFrame->PresContext(),
                                                             mFrame,
                                                             nsRect(offset, mFrame->GetSize()),
                                                             *(mFrame->StyleContext()->StyleBorder()),
                                                             mVisibleRect,
                                                             mFrame->GetSkipSides(),
                                                             flags,
-                                                            &result);
+                                                            result);
 
       if (!mBorderImageRenderer) {
         return LAYER_NONE;
       }
 
       if (!mBorderImageRenderer->mImageRenderer.IsImageContainerAvailable(aManager, flags)) {
         return LAYER_NONE;
       }