Update SkCanvas::fSaveCount in AutoLayerForImageFilter

It is up to the caller of SkCanvas::internalSaveLayer and
SkCanvas::internalRestore properly track SkCanvas::fSaveCount. The
AutoLayerForImageFilter class did not update these, so any attempt to
save a layer when it is active would potentially restore incorrectly.

Bug: chromium:1292419
Change-Id: Ic64c899d6da99c6c8e6848081379e7cbb4d37fa8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503488
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index 538eae3..f84b1a5 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -328,6 +328,7 @@
                 rawBounds = &fPaint.computeFastBounds(*rawBounds, &storage);
             }
 
+            canvas->fSaveCount += 1;
             (void)canvas->internalSaveLayer(SkCanvas::SaveLayerRec(rawBounds, &restorePaint),
                                             SkCanvas::kFullLayer_SaveLayerStrategy);
             fTempLayerForImageFilter = true;
@@ -341,6 +342,7 @@
 
     ~AutoLayerForImageFilter() {
         if (fTempLayerForImageFilter) {
+            fCanvas->fSaveCount -= 1;
             fCanvas->internalRestore();
         }
         SkASSERT(fCanvas->getSaveCount() == fSaveCount);