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 <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
This commit is contained in:
Mike Reed 2018-04-12 11:05:01 -04:00 committed by Skia Commit-Bot
parent 371001bbf7
commit dd8ae14528

View File

@ -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);