use member version of skipT

Bug: skia:
Change-Id: I2a4ce9c959616a7a7121028b81c6d89a41a26bdd
Reviewed-on: https://skia-review.googlesource.com/90484
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
diff --git a/src/pipe/SkPipeReader.cpp b/src/pipe/SkPipeReader.cpp
index f8dc238..c2ff0bf 100644
--- a/src/pipe/SkPipeReader.cpp
+++ b/src/pipe/SkPipeReader.cpp
@@ -93,10 +93,6 @@
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-template <typename T> const T* skip(SkReadBuffer& reader, int count = 1) {
-    return (const T*)reader.skip(count * sizeof(T));
-}
-
 static SkRRect read_rrect(SkReadBuffer& reader) {
     SkRRect rrect;
     rrect.readFromMemory(reader.skip(SkRRect::kSizeInMemory), SkRRect::kSizeInMemory);
@@ -108,9 +104,9 @@
     matrix.reset();
 
     if (tm & SkMatrix::kPerspective_Mask) {
-        matrix.set9(skip<SkScalar>(reader, 9));
+        matrix.set9(reader.skipT<SkScalar>(9));
     } else if (tm & SkMatrix::kAffine_Mask) {
-        const SkScalar* tmp = skip<SkScalar>(reader, 6);
+        const SkScalar* tmp = reader.skipT<SkScalar>(6);
         matrix[SkMatrix::kMScaleX] = tmp[0];
         matrix[SkMatrix::kMSkewX]  = tmp[1];
         matrix[SkMatrix::kMTransX] = tmp[2];
@@ -118,13 +114,13 @@
         matrix[SkMatrix::kMSkewY]  = tmp[4];
         matrix[SkMatrix::kMTransY] = tmp[5];
     } else if (tm & SkMatrix::kScale_Mask) {
-        const SkScalar* tmp = skip<SkScalar>(reader, 4);
+        const SkScalar* tmp = reader.skipT<SkScalar>(4);
         matrix[SkMatrix::kMScaleX] = tmp[0];
         matrix[SkMatrix::kMTransX] = tmp[1];
         matrix[SkMatrix::kMScaleY] = tmp[2];
         matrix[SkMatrix::kMTransY] = tmp[3];
     } else if (tm & SkMatrix::kTranslate_Mask) {
-        const SkScalar* tmp = skip<SkScalar>(reader, 2);
+        const SkScalar* tmp = reader.skipT<SkScalar>(2);
         matrix[SkMatrix::kMTransX] = tmp[0];
         matrix[SkMatrix::kMTransY] = tmp[1];
     }
@@ -228,7 +224,7 @@
 static void saveLayer_handler(SkPipeReader& reader, uint32_t packedVerb, SkCanvas* canvas) {
     SkASSERT(SkPipeVerb::kSaveLayer == unpack_verb(packedVerb));
     unsigned extra = unpack_verb_extra(packedVerb);
-    const SkRect* bounds = (extra & kHasBounds_SaveLayerMask) ? skip<SkRect>(reader) : nullptr;
+    const SkRect* bounds = (extra & kHasBounds_SaveLayerMask) ? reader.skipT<SkRect>() : nullptr;
     SkPaint paintStorage, *paint = nullptr;
     if (extra & kHasPaint_SaveLayerMask) {
         paintStorage = read_paint(reader);
@@ -277,7 +273,7 @@
     SkASSERT(SkPipeVerb::kClipRect == unpack_verb(packedVerb));
     SkClipOp op = (SkClipOp)(unpack_verb_extra(packedVerb) >> 1);
     bool isAA = unpack_verb_extra(packedVerb) & 1;
-    canvas->clipRect(*skip<SkRect>(reader), op, isAA);
+    canvas->clipRect(*reader.skipT<SkRect>(), op, isAA);
 }
 
 static void clipRRect_handler(SkPipeReader& reader, uint32_t packedVerb, SkCanvas* canvas) {
@@ -307,7 +303,7 @@
 static void drawArc_handler(SkPipeReader& reader, uint32_t packedVerb, SkCanvas* canvas) {
     SkASSERT(SkPipeVerb::kDrawArc == unpack_verb(packedVerb));
     const bool useCenter = (bool)(unpack_verb_extra(packedVerb) & 1);
-    const SkScalar* scalars = skip<SkScalar>(reader, 6);    // bounds[0..3], start[4], sweep[5]
+    const SkScalar* scalars = reader.skipT<SkScalar>(6);    // bounds[0..3], start[4], sweep[5]
     const SkRect* bounds = (const SkRect*)scalars;
     canvas->drawArc(*bounds, scalars[4], scalars[5], useCenter, read_paint(reader));
 }
@@ -317,15 +313,15 @@
     SkBlendMode mode = (SkBlendMode)(packedVerb & kMode_DrawAtlasMask);
     sk_sp<SkImage> image(reader.readImage());
     int count = reader.read32();
-    const SkRSXform* xform = skip<SkRSXform>(reader, count);
-    const SkRect* rect = skip<SkRect>(reader, count);
+    const SkRSXform* xform = reader.skipT<SkRSXform>(count);
+    const SkRect* rect = reader.skipT<SkRect>(count);
     const SkColor* color = nullptr;
     if (packedVerb & kHasColors_DrawAtlasMask) {
-        color = skip<SkColor>(reader, count);
+        color = reader.skipT<SkColor>(count);
     }
     const SkRect* cull = nullptr;
     if (packedVerb & kHasCull_DrawAtlasMask) {
-        cull = skip<SkRect>(reader);
+        cull = reader.skipT<SkRect>();
     }
     SkPaint paintStorage, *paint = nullptr;
     if (packedVerb & kHasPaint_DrawAtlasMask) {
@@ -362,7 +358,7 @@
     }
     const void* text = reader.skip(SkAlign4(len));
     int count = reader.read32();
-    const SkPoint* pos = skip<SkPoint>(reader, count);
+    const SkPoint* pos = reader.skipT<SkPoint>(count);
     SkPaint paint = read_paint(reader);
     SkASSERT(paint.countText(text, len) == count);
     canvas->drawPosText(text, len, pos, paint);
@@ -376,7 +372,7 @@
     }
     const void* text = reader.skip(SkAlign4(len));
     int count = reader.read32();
-    const SkScalar* xpos = skip<SkScalar>(reader, count);
+    const SkScalar* xpos = reader.skipT<SkScalar>(count);
     SkScalar constY = reader.readScalar();
     SkPaint paint = read_paint(reader);
     SkASSERT(paint.countText(text, len) == count);
@@ -419,8 +415,8 @@
     }
     const void* text = reader.skip(SkAlign4(len));
     int count = reader.read32();
-    const SkRSXform* xform = skip<SkRSXform>(reader, count);
-    const SkRect* cull = (packedVerb & 1) ? skip<SkRect>(reader) : nullptr;
+    const SkRSXform* xform = reader.skipT<SkRSXform>(count);
+    const SkRect* cull = (packedVerb & 1) ? reader.skipT<SkRect>() : nullptr;
     SkPaint paint = read_paint(reader);
     SkASSERT(paint.countText(text, len) == count);
     canvas->drawTextRSXform(text, len, xform, cull, paint);
@@ -430,12 +426,12 @@
     SkASSERT(SkPipeVerb::kDrawPatch == unpack_verb(packedVerb));
     const SkColor* colors = nullptr;
     const SkPoint* tex = nullptr;
-    const SkPoint* cubics = skip<SkPoint>(reader, 12);
+    const SkPoint* cubics = reader.skipT<SkPoint>(12);
     if (packedVerb & kHasColors_DrawPatchExtraMask) {
-        colors = skip<SkColor>(reader, 4);
+        colors = reader.skipT<SkColor>(4);
     }
     if (packedVerb & kHasTexture_DrawPatchExtraMask) {
-        tex = skip<SkPoint>(reader, 4);
+        tex = reader.skipT<SkPoint>(4);
     }
     SkBlendMode mode = (SkBlendMode)(packedVerb & kModeEnum_DrawPatchExtraMask);
     canvas->drawPatch(cubics, colors, tex, mode, read_paint(reader));
@@ -448,7 +444,7 @@
 
 static void drawRect_handler(SkPipeReader& reader, uint32_t packedVerb, SkCanvas* canvas) {
     SkASSERT(SkPipeVerb::kDrawRect == unpack_verb(packedVerb));
-    const SkRect* rect = skip<SkRect>(reader);
+    const SkRect* rect = reader.skipT<SkRect>();
     canvas->drawRect(*rect, read_paint(reader));
 }
 
@@ -459,13 +455,13 @@
         size = reader.read32();
     }
     SkRegion region;
-    region.readFromMemory(skip<char>(reader, SkAlign4(size)), size);
+    region.readFromMemory(reader.skipT<char>(size), size);
     canvas->drawRegion(region, read_paint(reader));
 }
 
 static void drawOval_handler(SkPipeReader& reader, uint32_t packedVerb, SkCanvas* canvas) {
     SkASSERT(SkPipeVerb::kDrawOval == unpack_verb(packedVerb));
-    const SkRect* rect = skip<SkRect>(reader);
+    const SkRect* rect = reader.skipT<SkRect>();
     canvas->drawOval(*rect, read_paint(reader));
 }
 
@@ -495,7 +491,7 @@
     SkASSERT(SkPipeVerb::kDrawPoints == unpack_verb(packedVerb));
     SkCanvas::PointMode mode = (SkCanvas::PointMode)unpack_verb_extra(packedVerb);
     int count = reader.read32();
-    const SkPoint* points = skip<SkPoint>(reader, count);
+    const SkPoint* points = reader.skipT<SkPoint>(count);
     canvas->drawPoints(mode, count, points, read_paint(reader));
 }
 
@@ -518,8 +514,8 @@
     SkCanvas::SrcRectConstraint constraint =
             (SkCanvas::SrcRectConstraint)(packedVerb & kConstraint_DrawImageRectMask);
     const SkRect* src = (packedVerb & kHasSrcRect_DrawImageRectMask) ?
-                        skip<SkRect>(reader) : nullptr;
-    const SkRect* dst = skip<SkRect>(reader);
+                        reader.skipT<SkRect>() : nullptr;
+    const SkRect* dst = reader.skipT<SkRect>();
     SkPaint paintStorage, *paint = nullptr;
     if (packedVerb & kHasPaint_DrawImageRectMask) {
         paintStorage = read_paint(reader);
@@ -535,8 +531,8 @@
 static void drawImageNine_handler(SkPipeReader& reader, uint32_t packedVerb, SkCanvas* canvas) {
     SkASSERT(SkPipeVerb::kDrawImageNine == unpack_verb(packedVerb));
     sk_sp<SkImage> image(reader.readImage());
-    const SkIRect* center = skip<SkIRect>(reader);
-    const SkRect* dst = skip<SkRect>(reader);
+    const SkIRect* center = reader.skipT<SkIRect>();
+    const SkRect* dst = reader.skipT<SkRect>();
     SkPaint paintStorage, *paint = nullptr;
     if (packedVerb & kHasPaint_DrawImageNineMask) {
         paintStorage = read_paint(reader);
@@ -553,7 +549,7 @@
     if (!SkCanvasPriv::ReadLattice(reader, &lattice)) {
         return;
     }
-    const SkRect* dst = skip<SkRect>(reader);
+    const SkRect* dst = reader.skipT<SkRect>();
 
     SkPaint paintStorage, *paint = nullptr;
     if (packedVerb & kHasPaint_DrawImageLatticeMask) {
@@ -590,14 +586,14 @@
 
 static void drawAnnotation_handler(SkPipeReader& reader, uint32_t packedVerb, SkCanvas* canvas) {
     SkASSERT(SkPipeVerb::kDrawAnnotation == unpack_verb(packedVerb));
-    const SkRect* rect = skip<SkRect>(reader);
+    const SkRect* rect = reader.skipT<SkRect>();
 
     // len includes the key's trailing 0
     uint32_t len = unpack_verb_extra(packedVerb) >> 1;
     if (0 == len) {
         len = reader.read32();
     }
-    const char* key = skip<char>(reader, len);
+    const char* key = reader.skipT<char>(len);
     sk_sp<SkData> data;
     if (packedVerb & 1) {
         uint32_t size = reader.read32();
@@ -697,7 +693,10 @@
     } else {
         SkPictureRecorder recorder;
         int pictureIndex = -1;  // invalid
-        const SkRect* cull = skip<SkRect>(reader);
+        const SkRect* cull = reader.skipT<SkRect>();
+        if (!cull) {
+            return;
+        }
         do_playback(reader, recorder.beginRecording(*cull), &pictureIndex);
         SkASSERT(pictureIndex > 0);
         sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();