diff --git a/samplecode/SampleClipDrawMatch.cpp b/samplecode/SampleClipDrawMatch.cpp
index b2158a6..0745eff 100644
--- a/samplecode/SampleClipDrawMatch.cpp
+++ b/samplecode/SampleClipDrawMatch.cpp
@@ -141,17 +141,17 @@
         SkUnichar uni;
         if (SampleCode::CharQ(*evt, &uni)) {
             switch (uni) {
-                case '1': fGeom = kRect_Geometry; this->inval(nullptr); return true;
-                case '2': fGeom = kRRect_Geometry; this->inval(nullptr); return true;
-                case '3': fGeom = kCircle_Geometry; this->inval(nullptr); return true;
-                case '4': fGeom = kConvexPath_Geometry; this->inval(nullptr); return true;
-                case '5': fGeom = kConcavePath_Geometry; this->inval(nullptr); return true;
-                case '6': fGeom = kRectAndRect_Geometry; this->inval(nullptr); return true;
-                case '7': fGeom = kRectAndRRect_Geometry; this->inval(nullptr); return true;
-                case '8': fGeom = kRectAndConvex_Geometry; this->inval(nullptr); return true;
-                case '9': fGeom = kRectAndConcave_Geometry; this->inval(nullptr); return true;
-                case 'f': fSign = -fSign; this->inval(nullptr); return true;
-                case 't': fClipFirst = !fClipFirst; this->inval(nullptr); return true;
+                case '1': fGeom = kRect_Geometry; return true;
+                case '2': fGeom = kRRect_Geometry; return true;
+                case '3': fGeom = kCircle_Geometry; return true;
+                case '4': fGeom = kConvexPath_Geometry; return true;
+                case '5': fGeom = kConcavePath_Geometry; return true;
+                case '6': fGeom = kRectAndRect_Geometry; return true;
+                case '7': fGeom = kRectAndRRect_Geometry; return true;
+                case '8': fGeom = kRectAndConvex_Geometry; return true;
+                case '9': fGeom = kRectAndConcave_Geometry; return true;
+                case 'f': fSign = -fSign; return true;
+                case 't': fClipFirst = !fClipFirst; return true;
                 default: break;
             }
         }
@@ -239,8 +239,6 @@
         int saveCount = canvas->save();
         this->drawGeometry(canvas, offset, false);
         canvas->restoreToCount(saveCount);
-
-        this->inval(nullptr);
     }
 
     SkMSec GetMSecs() const {
