From dd8ae14528bd8e37bcb98f4c452acf21850c4b3b Mon Sep 17 00:00:00 2001 From: Mike Reed Date: Thu, 12 Apr 2018 11:05:01 -0400 Subject: always clear the looper when we're unrolling it, to not confused devices Discovered by https://skia-review.googlesource.com/c/skia/+/119570 Bug: skia: Change-Id: I18c13052c5eb410a46ab16e2f1015861948678af Reviewed-on: https://skia-review.googlesource.com/121062 Reviewed-by: Florin Malita Commit-Queue: Mike Reed --- src/core/SkCanvas.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src') diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp index 803b370901..3d81ae69e8 100644 --- a/src/core/SkCanvas.cpp +++ b/src/core/SkCanvas.cpp @@ -433,6 +433,7 @@ public: const SkPaint& paint() const { SkASSERT(fPaint); + SkASSERT(fPaint->getDrawLooper() == nullptr); // we should have cleared this return *fPaint; } @@ -471,6 +472,8 @@ bool AutoDrawLooper::doNext(SkDrawFilter::Type drawType) { SkPaint* paint = fLazyPaintPerLooper.set(fLazyPaintInit.isValid() ? *fLazyPaintInit.get() : fOrigPaint); + // never want our downstream clients (i.e. devices) to see loopers + paint->setDrawLooper(nullptr); if (fTempLayerForImageFilter) { paint->setImageFilter(nullptr); -- cgit v1.2.3