From 3d5b83bf95333a0b31b08fb4a889fa7697c87c03 Mon Sep 17 00:00:00 2001 From: Yuqian Li Date: Fri, 4 May 2018 17:54:39 -0400 Subject: [PATCH] Restore old SkBitmapDeviceFilteredSurfaceProps The old seemingly unnecessary assignment is needed, otherwise skbug.com/7909 won't be fixed, and we will also introduce some unexpected gold changes. Ben: did you remember why you originally have that additional assignment? Probably related with SkTLazy? Bug: skia:7909 TBR: bungeman@google.com Change-Id: I20293b76bb448733d3ab4a90d40282b1420000d0 Reviewed-on: https://skia-review.googlesource.com/126204 Reviewed-by: Yuqian Li Commit-Queue: Yuqian Li --- src/core/SkBitmapDevice.h | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/core/SkBitmapDevice.h b/src/core/SkBitmapDevice.h index 62b1063ba4..dd8be7f277 100644 --- a/src/core/SkBitmapDevice.h +++ b/src/core/SkBitmapDevice.h @@ -182,17 +182,20 @@ private: class SkBitmapDeviceFilteredSurfaceProps { public: SkBitmapDeviceFilteredSurfaceProps(const SkBitmap& bitmap, const SkPaint& paint, - const SkSurfaceProps& surfaceProps) - : fSurfaceProps((kN32_SkColorType != bitmap.colorType() || !paint.isSrcOver()) - ? fLazy.init(surfaceProps.flags(), kUnknown_SkPixelGeometry) - : &surfaceProps) - { } + const SkSurfaceProps& surfaceProps) { + if (kN32_SkColorType != bitmap.colorType() || !paint.isSrcOver()) { + SkSurfaceProps* newProps = fLazy.init(surfaceProps.flags(), kUnknown_SkPixelGeometry); + fSurfaceProps = newProps; + } else { + fSurfaceProps = &surfaceProps; + } + } const SkSurfaceProps& operator()() const { return *fSurfaceProps; } private: + const SkSurfaceProps* fSurfaceProps; SkTLazy fLazy; - SkSurfaceProps const * const fSurfaceProps; }; #endif // SkBitmapDevice_DEFINED