Fix up all the easy virtual ... SK_OVERRIDE cases.

This fixes every case where virtual and SK_OVERRIDE were on the same line,
which should be the bulk of cases.  We'll have to manually clean up the rest
over time unless I level up in regexes.

for f in (find . -type f); perl -p -i -e 's/virtual (.*)SK_OVERRIDE/\1SK_OVERRIDE/g' $f; end

BUG=skia:

Review URL: https://codereview.chromium.org/806653007
diff --git a/src/utils/SkCanvasStack.h b/src/utils/SkCanvasStack.h
index 028e526..27bc6bc 100644
--- a/src/utils/SkCanvasStack.h
+++ b/src/utils/SkCanvasStack.h
@@ -18,7 +18,7 @@
     virtual ~SkCanvasStack();
 
     void pushCanvas(SkCanvas* canvas, const SkIPoint& origin);
-    virtual void removeAll() SK_OVERRIDE;
+    void removeAll() SK_OVERRIDE;
 
     /*
      * The following add/remove canvas methods are overrides from SkNWayCanvas
@@ -26,16 +26,16 @@
      * can share most of the other implementation of NWay we override those
      * methods to be no-ops.
      */
-    virtual void addCanvas(SkCanvas*) SK_OVERRIDE { SkDEBUGFAIL("Invalid Op"); }
-    virtual void removeCanvas(SkCanvas*) SK_OVERRIDE { SkDEBUGFAIL("Invalid Op"); }
+    void addCanvas(SkCanvas*) SK_OVERRIDE { SkDEBUGFAIL("Invalid Op"); }
+    void removeCanvas(SkCanvas*) SK_OVERRIDE { SkDEBUGFAIL("Invalid Op"); }
 
 protected:
-    virtual void didSetMatrix(const SkMatrix&) SK_OVERRIDE;
+    void didSetMatrix(const SkMatrix&) SK_OVERRIDE;
 
-    virtual void onClipRect(const SkRect&, SkRegion::Op, ClipEdgeStyle) SK_OVERRIDE;
-    virtual void onClipRRect(const SkRRect&, SkRegion::Op, ClipEdgeStyle) SK_OVERRIDE;
-    virtual void onClipPath(const SkPath&, SkRegion::Op, ClipEdgeStyle) SK_OVERRIDE;
-    virtual void onClipRegion(const SkRegion&, SkRegion::Op) SK_OVERRIDE;
+    void onClipRect(const SkRect&, SkRegion::Op, ClipEdgeStyle) SK_OVERRIDE;
+    void onClipRRect(const SkRRect&, SkRegion::Op, ClipEdgeStyle) SK_OVERRIDE;
+    void onClipPath(const SkPath&, SkRegion::Op, ClipEdgeStyle) SK_OVERRIDE;
+    void onClipRegion(const SkRegion&, SkRegion::Op) SK_OVERRIDE;
 
 private:
     void clipToZOrderedBounds();
diff --git a/src/utils/SkCanvasStateUtils.cpp b/src/utils/SkCanvasStateUtils.cpp
index a6806dd..0a14802 100644
--- a/src/utils/SkCanvasStateUtils.cpp
+++ b/src/utils/SkCanvasStateUtils.cpp
@@ -141,15 +141,15 @@
     bool failed() { return fFailed; }
 
     // ClipVisitor
-    virtual void clipRect(const SkRect& rect, SkRegion::Op op, bool antialias) SK_OVERRIDE {
+    void clipRect(const SkRect& rect, SkRegion::Op op, bool antialias) SK_OVERRIDE {
         fFailed |= antialias;
     }
 
-    virtual void clipRRect(const SkRRect& rrect, SkRegion::Op op, bool antialias) SK_OVERRIDE {
+    void clipRRect(const SkRRect& rrect, SkRegion::Op op, bool antialias) SK_OVERRIDE {
         fFailed |= antialias;
     }
 
-    virtual void clipPath(const SkPath&, SkRegion::Op, bool antialias) SK_OVERRIDE {
+    void clipPath(const SkPath&, SkRegion::Op, bool antialias) SK_OVERRIDE {
         fFailed |= antialias;
     }
 
diff --git a/src/utils/SkDeferredCanvas.cpp b/src/utils/SkDeferredCanvas.cpp
index a41b3ab..7da8532 100644
--- a/src/utils/SkDeferredCanvas.cpp
+++ b/src/utils/SkDeferredCanvas.cpp
@@ -65,8 +65,8 @@
     DeferredPipeController();
     void setPlaybackCanvas(SkCanvas*);
     virtual ~DeferredPipeController();
-    virtual void* requestBlock(size_t minRequest, size_t* actual) SK_OVERRIDE;
-    virtual void notifyWritten(size_t bytes) SK_OVERRIDE;
+    void* requestBlock(size_t minRequest, size_t* actual) SK_OVERRIDE;
+    void notifyWritten(size_t bytes) SK_OVERRIDE;
     void playback(bool silent);
     bool hasPendingCommands() const { return fAllocator.blockCount() != 0; }
     size_t storageAllocatedForRecording() const { return fAllocator.totalCapacity(); }
@@ -158,22 +158,22 @@
     void recordedDrawCommand();
     void setIsDrawingToLayer(bool value) {fIsDrawingToLayer = value;}
 
-    virtual SkImageInfo imageInfo() const SK_OVERRIDE;
+    SkImageInfo imageInfo() const SK_OVERRIDE;
 
-    virtual GrRenderTarget* accessRenderTarget() SK_OVERRIDE;
+    GrRenderTarget* accessRenderTarget() SK_OVERRIDE;
 
-    virtual SkBaseDevice* onCreateCompatibleDevice(const CreateInfo&) SK_OVERRIDE;
+    SkBaseDevice* onCreateCompatibleDevice(const CreateInfo&) SK_OVERRIDE;
 
-    virtual SkSurface* newSurface(const SkImageInfo&, const SkSurfaceProps&) SK_OVERRIDE;
+    SkSurface* newSurface(const SkImageInfo&, const SkSurfaceProps&) SK_OVERRIDE;
 
 protected:
-    virtual const SkBitmap& onAccessBitmap() SK_OVERRIDE;
-    virtual bool onReadPixels(const SkImageInfo&, void*, size_t, int x, int y) SK_OVERRIDE;
-    virtual bool onWritePixels(const SkImageInfo&, const void*, size_t, int x, int y) SK_OVERRIDE;
+    const SkBitmap& onAccessBitmap() SK_OVERRIDE;
+    bool onReadPixels(const SkImageInfo&, void*, size_t, int x, int y) SK_OVERRIDE;
+    bool onWritePixels(const SkImageInfo&, const void*, size_t, int x, int y) SK_OVERRIDE;
 
     // None of the following drawing methods should ever get called on the
     // deferred device
-    virtual void drawPaint(const SkDraw&, const SkPaint& paint) SK_OVERRIDE
+    void drawPaint(const SkDraw&, const SkPaint& paint) SK_OVERRIDE
         {SkASSERT(0);}
     virtual void drawPoints(const SkDraw&, SkCanvas::PointMode mode,
                             size_t count, const SkPoint[],
@@ -182,7 +182,7 @@
     virtual void drawRect(const SkDraw&, const SkRect& r,
                             const SkPaint& paint) SK_OVERRIDE
         {SkASSERT(0);}
-    virtual void drawOval(const SkDraw&, const SkRect&, const SkPaint&) SK_OVERRIDE
+    void drawOval(const SkDraw&, const SkRect&, const SkPaint&) SK_OVERRIDE
         {SkASSERT(0);}
     virtual void drawRRect(const SkDraw&, const SkRRect& rr,
                            const SkPaint& paint) SK_OVERRIDE
@@ -228,13 +228,13 @@
                             const SkPaint&) SK_OVERRIDE
         {SkASSERT(0);}
 
-    virtual void lockPixels() SK_OVERRIDE {}
-    virtual void unlockPixels() SK_OVERRIDE {}
+    void lockPixels() SK_OVERRIDE {}
+    void unlockPixels() SK_OVERRIDE {}
 
-    virtual bool allowImageFilter(const SkImageFilter*) SK_OVERRIDE {
+    bool allowImageFilter(const SkImageFilter*) SK_OVERRIDE {
         return false;
     }
-    virtual bool canHandleImageFilter(const SkImageFilter*) SK_OVERRIDE {
+    bool canHandleImageFilter(const SkImageFilter*) SK_OVERRIDE {
         return false;
     }
     virtual bool filterImage(const SkImageFilter*, const SkBitmap&,
@@ -243,8 +243,8 @@
     }
 
 private:
-    virtual void flush() SK_OVERRIDE;
-    virtual void replaceBitmapBackendForRasterSurface(const SkBitmap&) SK_OVERRIDE {}
+    void flush() SK_OVERRIDE;
+    void replaceBitmapBackendForRasterSurface(const SkBitmap&) SK_OVERRIDE {}
 
     void beginRecording();
     void init();
diff --git a/src/utils/SkEventTracer.cpp b/src/utils/SkEventTracer.cpp
index 694becf..4c0470b 100644
--- a/src/utils/SkEventTracer.cpp
+++ b/src/utils/SkEventTracer.cpp
@@ -25,7 +25,7 @@
                                  const char* name,
                                  SkEventTracer::Handle handle) SK_OVERRIDE {};
 
-    virtual const uint8_t* getCategoryGroupEnabled(const char* name) SK_OVERRIDE {
+    const uint8_t* getCategoryGroupEnabled(const char* name) SK_OVERRIDE {
         static uint8_t no = 0;
         return &no;
     };
diff --git a/src/utils/SkFrontBufferedStream.cpp b/src/utils/SkFrontBufferedStream.cpp
index 0922960..ad5ae6e 100644
--- a/src/utils/SkFrontBufferedStream.cpp
+++ b/src/utils/SkFrontBufferedStream.cpp
@@ -14,21 +14,21 @@
     // Called by Create.
     FrontBufferedStream(SkStream*, size_t bufferSize);
 
-    virtual size_t read(void* buffer, size_t size) SK_OVERRIDE;
+    size_t read(void* buffer, size_t size) SK_OVERRIDE;
 
-    virtual bool isAtEnd() const SK_OVERRIDE;
+    bool isAtEnd() const SK_OVERRIDE;
 
-    virtual bool rewind() SK_OVERRIDE;
+    bool rewind() SK_OVERRIDE;
 
-    virtual bool hasPosition() const SK_OVERRIDE { return true; }
+    bool hasPosition() const SK_OVERRIDE { return true; }
 
-    virtual size_t getPosition() const SK_OVERRIDE { return fOffset; }
+    size_t getPosition() const SK_OVERRIDE { return fOffset; }
 
-    virtual bool hasLength() const SK_OVERRIDE { return fHasLength; }
+    bool hasLength() const SK_OVERRIDE { return fHasLength; }
 
-    virtual size_t getLength() const SK_OVERRIDE { return fLength; }
+    size_t getLength() const SK_OVERRIDE { return fLength; }
 
-    virtual SkStreamRewindable* duplicate() const SK_OVERRIDE { return NULL; }
+    SkStreamRewindable* duplicate() const SK_OVERRIDE { return NULL; }
 
 private:
     SkAutoTUnref<SkStream>  fStream;
diff --git a/src/utils/SkGatherPixelRefsAndRects.h b/src/utils/SkGatherPixelRefsAndRects.h
index 9589c3e..6f1e1b5 100644
--- a/src/utils/SkGatherPixelRefsAndRects.h
+++ b/src/utils/SkGatherPixelRefsAndRects.h
@@ -35,12 +35,12 @@
         SkSafeUnref(fPRCont);
     }
 
-    virtual SkImageInfo imageInfo() const SK_OVERRIDE {
+    SkImageInfo imageInfo() const SK_OVERRIDE {
         return fEmptyBitmap.info();
     }
 
 protected:
-    virtual void drawPaint(const SkDraw& draw, const SkPaint& paint) SK_OVERRIDE {
+    void drawPaint(const SkDraw& draw, const SkPaint& paint) SK_OVERRIDE {
         SkBitmap bm;
 
         if (GetBitmapFromPaint(paint, &bm)) {
@@ -268,13 +268,13 @@
         NothingToDo();
     }
     // TODO: allow this call to return failure, or move to SkBitmapDevice only.
-    virtual const SkBitmap& onAccessBitmap() SK_OVERRIDE {
+    const SkBitmap& onAccessBitmap() SK_OVERRIDE {
         return fEmptyBitmap;
     }
-    virtual void lockPixels() SK_OVERRIDE { NothingToDo(); }
-    virtual void unlockPixels() SK_OVERRIDE { NothingToDo(); }
-    virtual bool allowImageFilter(const SkImageFilter*) SK_OVERRIDE { return false; }
-    virtual bool canHandleImageFilter(const SkImageFilter*) SK_OVERRIDE { return false; }
+    void lockPixels() SK_OVERRIDE { NothingToDo(); }
+    void unlockPixels() SK_OVERRIDE { NothingToDo(); }
+    bool allowImageFilter(const SkImageFilter*) SK_OVERRIDE { return false; }
+    bool canHandleImageFilter(const SkImageFilter*) SK_OVERRIDE { return false; }
     virtual bool filterImage(const SkImageFilter*, const SkBitmap&, const SkImageFilter::Context&,
                              SkBitmap* result, SkIPoint* offset) SK_OVERRIDE {
         return false;
@@ -296,11 +296,11 @@
         return false;
     }
 
-    virtual void replaceBitmapBackendForRasterSurface(const SkBitmap&) SK_OVERRIDE {
+    void replaceBitmapBackendForRasterSurface(const SkBitmap&) SK_OVERRIDE {
         NotSupported();
     }
 
-    virtual SkBaseDevice* onCreateCompatibleDevice(const CreateInfo& info) SK_OVERRIDE {
+    SkBaseDevice* onCreateCompatibleDevice(const CreateInfo& info) SK_OVERRIDE {
         // we expect to only get called via savelayer, in which case it is fine.
         SkASSERT(kSaveLayer_Usage == info.fUsage);
         return SkNEW_ARGS(SkGatherPixelRefsAndRectsDevice,
diff --git a/src/utils/SkMD5.h b/src/utils/SkMD5.h
index 4f50478..889338b 100644
--- a/src/utils/SkMD5.h
+++ b/src/utils/SkMD5.h
@@ -24,12 +24,12 @@
     /** Processes input, adding it to the digest.
      *  Note that this treats the buffer as a series of uint8_t values.
      */
-    virtual bool write(const void* buffer, size_t size) SK_OVERRIDE {
+    bool write(const void* buffer, size_t size) SK_OVERRIDE {
         this->update(reinterpret_cast<const uint8_t*>(buffer), size);
         return true;
     }
 
-    virtual size_t bytesWritten() const SK_OVERRIDE { return SkToSizeT(this->byteCount); }
+    size_t bytesWritten() const SK_OVERRIDE { return SkToSizeT(this->byteCount); }
 
     /** Processes input, adding it to the digest. Calling this after finish is undefined. */
     void update(const uint8_t* input, size_t length);
diff --git a/src/utils/SkPictureUtils.cpp b/src/utils/SkPictureUtils.cpp
index 2c6b8f5..dadd89a 100644
--- a/src/utils/SkPictureUtils.cpp
+++ b/src/utils/SkPictureUtils.cpp
@@ -60,24 +60,24 @@
         fPRSet = prset;
     }
 
-    virtual SkImageInfo imageInfo() const SK_OVERRIDE {
+    SkImageInfo imageInfo() const SK_OVERRIDE {
         return SkImageInfo::MakeUnknown(fSize.width(), fSize.height());
     }
-    virtual GrRenderTarget* accessRenderTarget() SK_OVERRIDE { return NULL; }
+    GrRenderTarget* accessRenderTarget() SK_OVERRIDE { return NULL; }
     // TODO: allow this call to return failure, or move to SkBitmapDevice only.
-    virtual const SkBitmap& onAccessBitmap() SK_OVERRIDE {
+    const SkBitmap& onAccessBitmap() SK_OVERRIDE {
         return fEmptyBitmap;
     }
-    virtual void lockPixels() SK_OVERRIDE { nothing_to_do(); }
-    virtual void unlockPixels() SK_OVERRIDE { nothing_to_do(); }
-    virtual bool allowImageFilter(const SkImageFilter*) SK_OVERRIDE { return false; }
-    virtual bool canHandleImageFilter(const SkImageFilter*) SK_OVERRIDE { return false; }
+    void lockPixels() SK_OVERRIDE { nothing_to_do(); }
+    void unlockPixels() SK_OVERRIDE { nothing_to_do(); }
+    bool allowImageFilter(const SkImageFilter*) SK_OVERRIDE { return false; }
+    bool canHandleImageFilter(const SkImageFilter*) SK_OVERRIDE { return false; }
     virtual bool filterImage(const SkImageFilter*, const SkBitmap&, const SkImageFilter::Context&,
                              SkBitmap* result, SkIPoint* offset) SK_OVERRIDE {
         return false;
     }
 
-    virtual void drawPaint(const SkDraw&, const SkPaint& paint) SK_OVERRIDE {
+    void drawPaint(const SkDraw&, const SkPaint& paint) SK_OVERRIDE {
         this->addBitmapFromPaint(paint);
     }
     virtual void drawPoints(const SkDraw&, SkCanvas::PointMode mode, size_t count,
@@ -149,15 +149,15 @@
     }
 
 protected:
-    virtual void replaceBitmapBackendForRasterSurface(const SkBitmap&) SK_OVERRIDE {
+    void replaceBitmapBackendForRasterSurface(const SkBitmap&) SK_OVERRIDE {
         not_supported();
     }
-    virtual SkBaseDevice* onCreateCompatibleDevice(const CreateInfo& cinfo) SK_OVERRIDE {
+    SkBaseDevice* onCreateCompatibleDevice(const CreateInfo& cinfo) SK_OVERRIDE {
         // we expect to only get called via savelayer, in which case it is fine.
         SkASSERT(kSaveLayer_Usage == cinfo.fUsage);
         return SkNEW_ARGS(GatherPixelRefDevice, (cinfo.fInfo.width(), cinfo.fInfo.height(), fPRSet));
     }
-    virtual void flush() SK_OVERRIDE {}
+    void flush() SK_OVERRIDE {}
 
 private:
     PixelRefSet*  fPRSet;
diff --git a/src/utils/SkSHA1.h b/src/utils/SkSHA1.h
index df8b9bf..e7ede64 100644
--- a/src/utils/SkSHA1.h
+++ b/src/utils/SkSHA1.h
@@ -24,12 +24,12 @@
     /** Processes input, adding it to the digest.
      *  Note that this treats the buffer as a series of uint8_t values.
      */
-    virtual bool write(const void* buffer, size_t size) SK_OVERRIDE {
+    bool write(const void* buffer, size_t size) SK_OVERRIDE {
         update(reinterpret_cast<const uint8_t*>(buffer), size);
         return true;
     }
 
-    virtual size_t bytesWritten() const SK_OVERRIDE { return SkToSizeT(this->byteCount); }
+    size_t bytesWritten() const SK_OVERRIDE { return SkToSizeT(this->byteCount); }
 
     /** Processes input, adding it to the digest. Calling this after finish is undefined. */
     void update(const uint8_t* input, size_t length);
diff --git a/src/utils/SkTextureCompressor_Blitter.h b/src/utils/SkTextureCompressor_Blitter.h
index cdf2fb6..186df53 100644
--- a/src/utils/SkTextureCompressor_Blitter.h
+++ b/src/utils/SkTextureCompressor_Blitter.h
@@ -85,7 +85,7 @@
     virtual ~SkTCompressedAlphaBlitter() { this->flushRuns(); }
 
     // Blit a horizontal run of one or more pixels.
-    virtual void blitH(int x, int y, int width) SK_OVERRIDE {
+    void blitH(int x, int y, int width) SK_OVERRIDE {
         // This function is intended to be called from any standard RGB
         // buffer, so we should never encounter it. However, if some code
         // path does end up here, then this needs to be investigated.
@@ -141,7 +141,7 @@
     }
     
     // Blit a vertical run of pixels with a constant alpha value.
-    virtual void blitV(int x, int y, int height, SkAlpha alpha) SK_OVERRIDE {
+    void blitV(int x, int y, int height, SkAlpha alpha) SK_OVERRIDE {
         // This function is currently not implemented. It is not explicitly
         // required by the contract, but if at some time a code path runs into
         // this function (which is entirely possible), it needs to be implemented.
@@ -163,7 +163,7 @@
 #ifdef SK_DEBUG
     bool fCalledOnceWithNonzeroY;
 #endif
-    virtual void blitRect(int x, int y, int width, int height) SK_OVERRIDE {
+    void blitRect(int x, int y, int width, int height) SK_OVERRIDE {
 
         // Assumptions:
         SkASSERT(0 == x);
@@ -306,7 +306,7 @@
 #ifdef SK_DEBUG
     bool fBlitMaskCalled;
 #endif
-    virtual void blitMask(const SkMask& mask, const SkIRect& clip) SK_OVERRIDE {
+    void blitMask(const SkMask& mask, const SkIRect& clip) SK_OVERRIDE {
 
         // Assumptions:
         SkASSERT(!fBlitMaskCalled);
@@ -368,7 +368,7 @@
     // If the blitter just sets a single value for each pixel, return the
     // bitmap it draws into, and assign value. If not, return NULL and ignore
     // the value parameter.
-    virtual const SkBitmap* justAnOpaqueColor(uint32_t* value) SK_OVERRIDE {
+    const SkBitmap* justAnOpaqueColor(uint32_t* value) SK_OVERRIDE {
         return NULL;
     }
 
@@ -378,7 +378,7 @@
      * to preserve semantics if blitAntiH doesn't get called in too many
      * weird ways...
      */
-    virtual int requestRowsPreserved() const SK_OVERRIDE { return BlockDim; }
+    int requestRowsPreserved() const SK_OVERRIDE { return BlockDim; }
 
 private:
     static const int kPixelsPerBlock = BlockDim * BlockDim;
diff --git a/src/utils/debugger/SkDebugCanvas.cpp b/src/utils/debugger/SkDebugCanvas.cpp
index d770407..6a04006 100644
--- a/src/utils/debugger/SkDebugCanvas.cpp
+++ b/src/utils/debugger/SkDebugCanvas.cpp
@@ -95,7 +95,7 @@
 
 class OverdrawXfermode : public SkXfermode {
 public:
-    virtual SkPMColor xferColor(SkPMColor src, SkPMColor dst) const SK_OVERRIDE {
+    SkPMColor xferColor(SkPMColor src, SkPMColor dst) const SK_OVERRIDE {
         // This table encodes the color progression of the overdraw visualization
         static const SkPMColor gTable[] = {
             SkPackARGB32(0x00, 0x00, 0x00, 0x00),
@@ -120,7 +120,7 @@
         return gTable[SK_ARRAY_COUNT(gTable)-1];
     }
 
-    virtual Factory getFactory() const SK_OVERRIDE { return NULL; }
+    Factory getFactory() const SK_OVERRIDE { return NULL; }
 #ifndef SK_IGNORE_TO_STRING
     virtual void toString(SkString* str) const { str->set("OverdrawXfermode"); }
 #endif
@@ -136,7 +136,7 @@
         delete fXferMode;
     }
 
-    virtual bool filter(SkPaint* p, Type) SK_OVERRIDE {
+    bool filter(SkPaint* p, Type) SK_OVERRIDE {
         p->setXfermode(fXferMode);
         return true;
     }
@@ -159,7 +159,7 @@
         fFilterLevel = filterLevel;
     }
 
-    virtual bool filter(SkPaint* p, Type) SK_OVERRIDE {
+    bool filter(SkPaint* p, Type) SK_OVERRIDE {
         p->setFilterLevel(fFilterLevel);
         return true;
     }
@@ -175,21 +175,21 @@
 public:
     SkDebugClipVisitor(SkCanvas* canvas) : fCanvas(canvas) {}
 
-    virtual void clipRect(const SkRect& r, SkRegion::Op, bool doAA) SK_OVERRIDE {
+    void clipRect(const SkRect& r, SkRegion::Op, bool doAA) SK_OVERRIDE {
         SkPaint p;
         p.setColor(SK_ColorRED);
         p.setStyle(SkPaint::kStroke_Style);
         p.setAntiAlias(doAA);
         fCanvas->drawRect(r, p);
     }
-    virtual void clipRRect(const SkRRect& rr, SkRegion::Op, bool doAA) SK_OVERRIDE {
+    void clipRRect(const SkRRect& rr, SkRegion::Op, bool doAA) SK_OVERRIDE {
         SkPaint p;
         p.setColor(SK_ColorGREEN);
         p.setStyle(SkPaint::kStroke_Style);
         p.setAntiAlias(doAA);
         fCanvas->drawRRect(rr, p);
     }
-    virtual void clipPath(const SkPath& path, SkRegion::Op, bool doAA) SK_OVERRIDE {
+    void clipPath(const SkPath& path, SkRegion::Op, bool doAA) SK_OVERRIDE {
         SkPaint p;
         p.setColor(SK_ColorBLUE);
         p.setStyle(SkPaint::kStroke_Style);
diff --git a/src/utils/debugger/SkDebugCanvas.h b/src/utils/debugger/SkDebugCanvas.h
index 4acf832..3d9983b 100644
--- a/src/utils/debugger/SkDebugCanvas.h
+++ b/src/utils/debugger/SkDebugCanvas.h
@@ -146,16 +146,16 @@
 // Inherited from SkCanvas
 ////////////////////////////////////////////////////////////////////////////////
 
-    virtual void beginCommentGroup(const char* description) SK_OVERRIDE;
-    virtual void addComment(const char* kywd, const char* value) SK_OVERRIDE;
-    virtual void endCommentGroup() SK_OVERRIDE;
+    void beginCommentGroup(const char* description) SK_OVERRIDE;
+    void addComment(const char* kywd, const char* value) SK_OVERRIDE;
+    void endCommentGroup() SK_OVERRIDE;
 
     static const int kVizImageHeight = 256;
     static const int kVizImageWidth = 256;
 
-    virtual bool isClipEmpty() const SK_OVERRIDE { return false; }
-    virtual bool isClipRect() const SK_OVERRIDE { return true; }
-    virtual bool getClipBounds(SkRect* bounds) const SK_OVERRIDE {
+    bool isClipEmpty() const SK_OVERRIDE { return false; }
+    bool isClipRect() const SK_OVERRIDE { return true; }
+    bool getClipBounds(SkRect* bounds) const SK_OVERRIDE {
         if (bounds) {
             bounds->setXYWH(0, 0,
                             SkIntToScalar(this->imageInfo().width()),
@@ -163,7 +163,7 @@
         }
         return true;
     }
-    virtual bool getClipDeviceBounds(SkIRect* bounds) const SK_OVERRIDE {
+    bool getClipDeviceBounds(SkIRect* bounds) const SK_OVERRIDE {
         if (bounds) {
             bounds->setLargest();
         }
@@ -171,14 +171,14 @@
     }
 
 protected:
-    virtual void willSave() SK_OVERRIDE;
-    virtual SaveLayerStrategy willSaveLayer(const SkRect*, const SkPaint*, SaveFlags) SK_OVERRIDE;
-    virtual void willRestore() SK_OVERRIDE;
+    void willSave() SK_OVERRIDE;
+    SaveLayerStrategy willSaveLayer(const SkRect*, const SkPaint*, SaveFlags) SK_OVERRIDE;
+    void willRestore() SK_OVERRIDE;
 
-    virtual void didConcat(const SkMatrix&) SK_OVERRIDE;
-    virtual void didSetMatrix(const SkMatrix&) SK_OVERRIDE;
+    void didConcat(const SkMatrix&) SK_OVERRIDE;
+    void didSetMatrix(const SkMatrix&) SK_OVERRIDE;
 
-    virtual void onDrawDRRect(const SkRRect&, const SkRRect&, const SkPaint&) SK_OVERRIDE;
+    void onDrawDRRect(const SkRRect&, const SkRRect&, const SkPaint&) SK_OVERRIDE;
     virtual void onDrawText(const void* text, size_t byteLength, SkScalar x, SkScalar y,
                             const SkPaint&) SK_OVERRIDE;
     virtual void onDrawPosText(const void* text, size_t byteLength, const SkPoint pos[],
@@ -211,12 +211,12 @@
                         const uint16_t indices[], int indexCount,
                         const SkPaint&) SK_OVERRIDE;
 
-    virtual void onClipRect(const SkRect&, SkRegion::Op, ClipEdgeStyle) SK_OVERRIDE;
-    virtual void onClipRRect(const SkRRect&, SkRegion::Op, ClipEdgeStyle) SK_OVERRIDE;
-    virtual void onClipPath(const SkPath&, SkRegion::Op, ClipEdgeStyle) SK_OVERRIDE;
-    virtual void onClipRegion(const SkRegion& region, SkRegion::Op) SK_OVERRIDE;
+    void onClipRect(const SkRect&, SkRegion::Op, ClipEdgeStyle) SK_OVERRIDE;
+    void onClipRRect(const SkRRect&, SkRegion::Op, ClipEdgeStyle) SK_OVERRIDE;
+    void onClipPath(const SkPath&, SkRegion::Op, ClipEdgeStyle) SK_OVERRIDE;
+    void onClipRegion(const SkRegion& region, SkRegion::Op) SK_OVERRIDE;
 
-    virtual void onDrawPicture(const SkPicture*, const SkMatrix*, const SkPaint*) SK_OVERRIDE;
+    void onDrawPicture(const SkPicture*, const SkMatrix*, const SkPaint*) SK_OVERRIDE;
 
     void markActiveCommands(int index);
 
diff --git a/src/utils/debugger/SkDrawCommand.h b/src/utils/debugger/SkDrawCommand.h
index 831dffc..22ee700 100644
--- a/src/utils/debugger/SkDrawCommand.h
+++ b/src/utils/debugger/SkDrawCommand.h
@@ -79,9 +79,9 @@
 class SkRestoreCommand : public SkDrawCommand {
 public:
     SkRestoreCommand();
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
-    virtual void trackSaveState(int* state) SK_OVERRIDE;
-    virtual Action action() const SK_OVERRIDE { return kPopLayer_Action; }
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    void trackSaveState(int* state) SK_OVERRIDE;
+    Action action() const SK_OVERRIDE { return kPopLayer_Action; }
 
 private:
     typedef SkDrawCommand INHERITED;
@@ -90,7 +90,7 @@
 class SkClearCommand : public SkDrawCommand {
 public:
     SkClearCommand(SkColor color);
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
 private:
     SkColor fColor;
 
@@ -100,8 +100,8 @@
 class SkClipPathCommand : public SkDrawCommand {
 public:
     SkClipPathCommand(const SkPath& path, SkRegion::Op op, bool doAA);
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
-    virtual bool render(SkCanvas* canvas) const SK_OVERRIDE;
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    bool render(SkCanvas* canvas) const SK_OVERRIDE;
 private:
     SkPath       fPath;
     SkRegion::Op fOp;
@@ -113,7 +113,7 @@
 class SkClipRegionCommand : public SkDrawCommand {
 public:
     SkClipRegionCommand(const SkRegion& region, SkRegion::Op op);
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
 private:
     SkRegion     fRegion;
     SkRegion::Op fOp;
@@ -124,7 +124,7 @@
 class SkClipRectCommand : public SkDrawCommand {
 public:
     SkClipRectCommand(const SkRect& rect, SkRegion::Op op, bool doAA);
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
 
     const SkRect& rect() const { return fRect; }
     SkRegion::Op op() const { return fOp; }
@@ -141,8 +141,8 @@
 class SkClipRRectCommand : public SkDrawCommand {
 public:
     SkClipRRectCommand(const SkRRect& rrect, SkRegion::Op op, bool doAA);
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
-    virtual bool render(SkCanvas* canvas) const SK_OVERRIDE;
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    bool render(SkCanvas* canvas) const SK_OVERRIDE;
 
     const SkRRect& rrect() const { return fRRect; }
     SkRegion::Op op() const { return fOp; }
@@ -159,7 +159,7 @@
 class SkConcatCommand : public SkDrawCommand {
 public:
     SkConcatCommand(const SkMatrix& matrix);
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
 private:
     SkMatrix fMatrix;
 
@@ -170,8 +170,8 @@
 public:
     SkDrawBitmapCommand(const SkBitmap& bitmap, SkScalar left, SkScalar top,
                         const SkPaint* paint);
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
-    virtual bool render(SkCanvas* canvas) const SK_OVERRIDE;
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    bool render(SkCanvas* canvas) const SK_OVERRIDE;
 private:
     SkBitmap fBitmap;
     SkScalar fLeft;
@@ -186,8 +186,8 @@
 public:
     SkDrawBitmapNineCommand(const SkBitmap& bitmap, const SkIRect& center,
                             const SkRect& dst, const SkPaint* paint);
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
-    virtual bool render(SkCanvas* canvas) const SK_OVERRIDE;
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    bool render(SkCanvas* canvas) const SK_OVERRIDE;
 private:
     SkBitmap fBitmap;
     SkIRect  fCenter;
@@ -203,8 +203,8 @@
     SkDrawBitmapRectCommand(const SkBitmap& bitmap, const SkRect* src,
                             const SkRect& dst, const SkPaint* paint,
                             SkCanvas::DrawBitmapRectFlags flags);
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
-    virtual bool render(SkCanvas* canvas) const SK_OVERRIDE;
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    bool render(SkCanvas* canvas) const SK_OVERRIDE;
 
     const SkBitmap& bitmap() const { return fBitmap; }
 
@@ -240,7 +240,7 @@
 class SkBeginCommentGroupCommand : public SkDrawCommand {
 public:
     SkBeginCommentGroupCommand(const char* description);
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE {
+    void execute(SkCanvas* canvas) const SK_OVERRIDE {
         canvas->beginCommentGroup(fDescription.c_str());
     };
 private:
@@ -252,7 +252,7 @@
 class SkCommentCommand : public SkDrawCommand {
 public:
     SkCommentCommand(const char* kywd, const char* value);
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE {
+    void execute(SkCanvas* canvas) const SK_OVERRIDE {
         canvas->addComment(fKywd.c_str(), fValue.c_str());
     };
 private:
@@ -265,7 +265,7 @@
 class SkEndCommentGroupCommand : public SkDrawCommand {
 public:
     SkEndCommentGroupCommand();
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE {
+    void execute(SkCanvas* canvas) const SK_OVERRIDE {
         canvas->endCommentGroup();
     };
 private:
@@ -275,8 +275,8 @@
 class SkDrawOvalCommand : public SkDrawCommand {
 public:
     SkDrawOvalCommand(const SkRect& oval, const SkPaint& paint);
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
-    virtual bool render(SkCanvas* canvas) const SK_OVERRIDE;
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    bool render(SkCanvas* canvas) const SK_OVERRIDE;
 private:
     SkRect  fOval;
     SkPaint fPaint;
@@ -287,8 +287,8 @@
 class SkDrawPaintCommand : public SkDrawCommand {
 public:
     SkDrawPaintCommand(const SkPaint& paint);
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
-    virtual bool render(SkCanvas* canvas) const SK_OVERRIDE;
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    bool render(SkCanvas* canvas) const SK_OVERRIDE;
 private:
     SkPaint fPaint;
 
@@ -298,8 +298,8 @@
 class SkDrawPathCommand : public SkDrawCommand {
 public:
     SkDrawPathCommand(const SkPath& path, const SkPaint& paint);
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
-    virtual bool render(SkCanvas* canvas) const SK_OVERRIDE;
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    bool render(SkCanvas* canvas) const SK_OVERRIDE;
 
 private:
     SkPath   fPath;
@@ -311,8 +311,8 @@
 class SkDrawPictureCommand : public SkDrawCommand {
 public:
     SkDrawPictureCommand(const SkPicture* picture, const SkMatrix* matrix, const SkPaint* paint);
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
-    virtual bool render(SkCanvas* canvas) const SK_OVERRIDE;
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    bool render(SkCanvas* canvas) const SK_OVERRIDE;
 
 private:
     SkAutoTUnref<const SkPicture> fPicture;
@@ -329,8 +329,8 @@
     SkDrawPointsCommand(SkCanvas::PointMode mode, size_t count, const SkPoint pts[],
                         const SkPaint& paint);
     virtual ~SkDrawPointsCommand() { delete [] fPts; }
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
-    virtual bool render(SkCanvas* canvas) const SK_OVERRIDE;
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    bool render(SkCanvas* canvas) const SK_OVERRIDE;
 private:
     SkCanvas::PointMode fMode;
     size_t              fCount;
@@ -345,7 +345,7 @@
     SkDrawTextCommand(const void* text, size_t byteLength, SkScalar x, SkScalar y,
                       const SkPaint& paint);
     virtual ~SkDrawTextCommand() { delete [] fText; }
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
 private:
     char*    fText;
     size_t   fByteLength;
@@ -361,7 +361,7 @@
     SkDrawPosTextCommand(const void* text, size_t byteLength, const SkPoint pos[],
                          const SkPaint& paint);
     virtual ~SkDrawPosTextCommand() { delete [] fPos; delete [] fText; }
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
 private:
     char*    fText;
     size_t   fByteLength;
@@ -376,7 +376,7 @@
     SkDrawTextOnPathCommand(const void* text, size_t byteLength, const SkPath& path,
                             const SkMatrix* matrix, const SkPaint& paint);
     virtual ~SkDrawTextOnPathCommand() { delete [] fText; }
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
 private:
     char*    fText;
     size_t   fByteLength;
@@ -392,7 +392,7 @@
     SkDrawPosTextHCommand(const void* text, size_t byteLength, const SkScalar xpos[],
                           SkScalar constY, const SkPaint& paint);
     virtual ~SkDrawPosTextHCommand() { delete [] fXpos; delete [] fText; }
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
 private:
     SkScalar* fXpos;
     char*     fText;
@@ -407,8 +407,8 @@
 public:
     SkDrawTextBlobCommand(const SkTextBlob* blob, SkScalar x, SkScalar y, const SkPaint& paint);
 
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
-    virtual bool render(SkCanvas* canvas) const SK_OVERRIDE;
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    bool render(SkCanvas* canvas) const SK_OVERRIDE;
 
 private:
     SkAutoTUnref<const SkTextBlob> fBlob;
@@ -422,7 +422,7 @@
 class SkDrawRectCommand : public SkDrawCommand {
 public:
     SkDrawRectCommand(const SkRect& rect, const SkPaint& paint);
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
 
     const SkRect& rect() const   { return fRect; }
     const SkPaint& paint() const { return fPaint; }
@@ -436,8 +436,8 @@
 class SkDrawRRectCommand : public SkDrawCommand {
 public:
     SkDrawRRectCommand(const SkRRect& rrect, const SkPaint& paint);
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
-    virtual bool render(SkCanvas* canvas) const SK_OVERRIDE;
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    bool render(SkCanvas* canvas) const SK_OVERRIDE;
 private:
     SkRRect fRRect;
     SkPaint fPaint;
@@ -449,8 +449,8 @@
 public:
     SkDrawDRRectCommand(const SkRRect& outer, const SkRRect& inner,
                         const SkPaint& paint);
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
-    virtual bool render(SkCanvas* canvas) const SK_OVERRIDE;
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    bool render(SkCanvas* canvas) const SK_OVERRIDE;
 private:
     SkRRect fOuter;
     SkRRect fInner;
@@ -462,8 +462,8 @@
 class SkDrawSpriteCommand : public SkDrawCommand {
 public:
     SkDrawSpriteCommand(const SkBitmap& bitmap, int left, int top, const SkPaint* paint);
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
-    virtual bool render(SkCanvas* canvas) const SK_OVERRIDE;
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    bool render(SkCanvas* canvas) const SK_OVERRIDE;
 private:
     SkBitmap fBitmap;
     int      fLeft;
@@ -482,7 +482,7 @@
                           const uint16_t indices[], int indexCount,
                           const SkPaint& paint);
     virtual ~SkDrawVerticesCommand();
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
 private:
     SkCanvas::VertexMode fVmode;
     int         fVertexCount;
@@ -500,7 +500,7 @@
 class SkRotateCommand : public SkDrawCommand {
 public:
     SkRotateCommand(SkScalar degrees);
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
 private:
     SkScalar fDegrees;
 
@@ -510,9 +510,9 @@
 class SkSaveCommand : public SkDrawCommand {
 public:
     SkSaveCommand();
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
-    virtual void trackSaveState(int* state) SK_OVERRIDE;
-    virtual Action action() const SK_OVERRIDE { return kPushLayer_Action; }
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    void trackSaveState(int* state) SK_OVERRIDE;
+    Action action() const SK_OVERRIDE { return kPushLayer_Action; }
 private:
     typedef SkDrawCommand INHERITED;
 };
@@ -521,12 +521,12 @@
 public:
     SkSaveLayerCommand(const SkRect* bounds, const SkPaint* paint,
                        SkCanvas::SaveFlags flags);
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
-    virtual void vizExecute(SkCanvas* canvas) const SK_OVERRIDE;
-    virtual void trackSaveState(int* state) SK_OVERRIDE;
-    virtual Action action() const SK_OVERRIDE{ return kPushLayer_Action; }
-    virtual void setActive(bool active) SK_OVERRIDE { fActive = active; }
-    virtual bool active() const SK_OVERRIDE { return fActive; }
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    void vizExecute(SkCanvas* canvas) const SK_OVERRIDE;
+    void trackSaveState(int* state) SK_OVERRIDE;
+    Action action() const SK_OVERRIDE{ return kPushLayer_Action; }
+    void setActive(bool active) SK_OVERRIDE { fActive = active; }
+    bool active() const SK_OVERRIDE { return fActive; }
 
     const SkPaint* paint() const { return fPaintPtr; }
 
@@ -544,7 +544,7 @@
 class SkScaleCommand : public SkDrawCommand {
 public:
     SkScaleCommand(SkScalar sx, SkScalar sy);
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
 
     SkScalar x() const { return fSx; }
     SkScalar y() const { return fSy; }
@@ -559,8 +559,8 @@
 class SkSetMatrixCommand : public SkDrawCommand {
 public:
     SkSetMatrixCommand(const SkMatrix& matrix);
-    virtual void setUserMatrix(const SkMatrix&) SK_OVERRIDE;
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    void setUserMatrix(const SkMatrix&) SK_OVERRIDE;
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
 private:
     SkMatrix fUserMatrix;
     SkMatrix fMatrix;
@@ -571,7 +571,7 @@
 class SkSkewCommand : public SkDrawCommand {
 public:
     SkSkewCommand(SkScalar sx, SkScalar sy);
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
 private:
     SkScalar fSx;
     SkScalar fSy;
@@ -582,7 +582,7 @@
 class SkTranslateCommand : public SkDrawCommand {
 public:
     SkTranslateCommand(SkScalar dx, SkScalar dy);
-    virtual void execute(SkCanvas* canvas) const SK_OVERRIDE;
+    void execute(SkCanvas* canvas) const SK_OVERRIDE;
 
     SkScalar x() const { return fDx; }
     SkScalar y() const { return fDy; }
diff --git a/src/utils/win/SkDWriteFontFileStream.h b/src/utils/win/SkDWriteFontFileStream.h
index ac98be6..1800e2f 100644
--- a/src/utils/win/SkDWriteFontFileStream.h
+++ b/src/utils/win/SkDWriteFontFileStream.h
@@ -24,16 +24,16 @@
     explicit SkDWriteFontFileStream(IDWriteFontFileStream* fontFileStream);
     virtual ~SkDWriteFontFileStream();
 
-    virtual size_t read(void* buffer, size_t size) SK_OVERRIDE;
-    virtual bool isAtEnd() const SK_OVERRIDE;
-    virtual bool rewind() SK_OVERRIDE;
-    virtual SkDWriteFontFileStream* duplicate() const SK_OVERRIDE;
-    virtual size_t getPosition() const SK_OVERRIDE;
-    virtual bool seek(size_t position) SK_OVERRIDE;
-    virtual bool move(long offset) SK_OVERRIDE;
-    virtual SkDWriteFontFileStream* fork() const SK_OVERRIDE;
-    virtual size_t getLength() const SK_OVERRIDE;
-    virtual const void* getMemoryBase() SK_OVERRIDE;
+    size_t read(void* buffer, size_t size) SK_OVERRIDE;
+    bool isAtEnd() const SK_OVERRIDE;
+    bool rewind() SK_OVERRIDE;
+    SkDWriteFontFileStream* duplicate() const SK_OVERRIDE;
+    size_t getPosition() const SK_OVERRIDE;
+    bool seek(size_t position) SK_OVERRIDE;
+    bool move(long offset) SK_OVERRIDE;
+    SkDWriteFontFileStream* fork() const SK_OVERRIDE;
+    size_t getLength() const SK_OVERRIDE;
+    const void* getMemoryBase() SK_OVERRIDE;
 
 private:
     SkTScopedComPtr<IDWriteFontFileStream> fFontFileStream;
diff --git a/src/utils/win/SkDWriteGeometrySink.h b/src/utils/win/SkDWriteGeometrySink.h
index 99a3262..703ac3d 100644
--- a/src/utils/win/SkDWriteGeometrySink.h
+++ b/src/utils/win/SkDWriteGeometrySink.h
@@ -28,17 +28,17 @@
     virtual ~SkDWriteGeometrySink();
 
 public:
-    virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void **object) SK_OVERRIDE;
-    virtual ULONG STDMETHODCALLTYPE AddRef(void) SK_OVERRIDE;
-    virtual ULONG STDMETHODCALLTYPE Release(void) SK_OVERRIDE;
+    HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void **object) SK_OVERRIDE;
+    ULONG STDMETHODCALLTYPE AddRef(void) SK_OVERRIDE;
+    ULONG STDMETHODCALLTYPE Release(void) SK_OVERRIDE;
 
-    virtual void STDMETHODCALLTYPE SetFillMode(D2D1_FILL_MODE fillMode) SK_OVERRIDE;
-    virtual void STDMETHODCALLTYPE SetSegmentFlags(D2D1_PATH_SEGMENT vertexFlags) SK_OVERRIDE;
-    virtual void STDMETHODCALLTYPE BeginFigure(D2D1_POINT_2F startPoint, D2D1_FIGURE_BEGIN figureBegin) SK_OVERRIDE;
-    virtual void STDMETHODCALLTYPE AddLines(const D2D1_POINT_2F *points, UINT pointsCount) SK_OVERRIDE;
-    virtual void STDMETHODCALLTYPE AddBeziers(const D2D1_BEZIER_SEGMENT *beziers, UINT beziersCount) SK_OVERRIDE;
-    virtual void STDMETHODCALLTYPE EndFigure(D2D1_FIGURE_END figureEnd) SK_OVERRIDE;
-    virtual HRESULT STDMETHODCALLTYPE Close() SK_OVERRIDE;
+    void STDMETHODCALLTYPE SetFillMode(D2D1_FILL_MODE fillMode) SK_OVERRIDE;
+    void STDMETHODCALLTYPE SetSegmentFlags(D2D1_PATH_SEGMENT vertexFlags) SK_OVERRIDE;
+    void STDMETHODCALLTYPE BeginFigure(D2D1_POINT_2F startPoint, D2D1_FIGURE_BEGIN figureBegin) SK_OVERRIDE;
+    void STDMETHODCALLTYPE AddLines(const D2D1_POINT_2F *points, UINT pointsCount) SK_OVERRIDE;
+    void STDMETHODCALLTYPE AddBeziers(const D2D1_BEZIER_SEGMENT *beziers, UINT beziersCount) SK_OVERRIDE;
+    void STDMETHODCALLTYPE EndFigure(D2D1_FIGURE_END figureEnd) SK_OVERRIDE;
+    HRESULT STDMETHODCALLTYPE Close() SK_OVERRIDE;
 
     static HRESULT Create(SkPath* path, IDWriteGeometrySink** geometryToPath);
 };