add basic tests for save/restore counting
BUG=skia:
Review URL: https://codereview.chromium.org/763503003
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index 3bf1ad9..afb89b0 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -811,6 +811,36 @@
///////////////////////////////////////////////////////////////////////////////
+int SkCanvas::getSaveCount() const {
+ return fMCStack.count();
+}
+
+int SkCanvas::save() {
+ this->willSave();
+ return this->internalSave();
+}
+
+void SkCanvas::restore() {
+ // check for underflow
+ if (fMCStack.count() > 1) {
+ this->willRestore();
+ this->internalRestore();
+ this->didRestore();
+ }
+}
+
+void SkCanvas::restoreToCount(int count) {
+ // sanity check
+ if (count < 1) {
+ count = 1;
+ }
+
+ int n = this->getSaveCount() - count;
+ for (int i = 0; i < n; ++i) {
+ this->restore();
+ }
+}
+
int SkCanvas::internalSave() {
int saveCount = this->getSaveCount(); // record this before the actual save
@@ -823,11 +853,6 @@
return saveCount;
}
-int SkCanvas::save() {
- this->willSave();
- return this->internalSave();
-}
-
static bool bounds_affects_clip(SkCanvas::SaveFlags flags) {
#ifdef SK_SUPPORT_LEGACY_CLIPTOLAYERFLAG
return (flags & SkCanvas::kClipToLayer_SaveFlag) != 0;
@@ -977,15 +1002,6 @@
}
}
-void SkCanvas::restore() {
- // check for underflow
- if (fMCStack.count() > 1) {
- this->willRestore();
- this->internalRestore();
- this->didRestore();
- }
-}
-
void SkCanvas::internalRestore() {
SkASSERT(fMCStack.count() != 0);
@@ -1023,22 +1039,6 @@
}
}
-int SkCanvas::getSaveCount() const {
- return fMCStack.count();
-}
-
-void SkCanvas::restoreToCount(int count) {
- // sanity check
- if (count < 1) {
- count = 1;
- }
-
- int n = this->getSaveCount() - count;
- for (int i = 0; i < n; ++i) {
- this->restore();
- }
-}
-
bool SkCanvas::isDrawingToLayer() const {
return fSaveLayerCount > 0;
}