| Index: src/core/SkDevice.cpp | 
| diff --git a/src/core/SkDevice.cpp b/src/core/SkDevice.cpp | 
| index 7ecdbef0957f96189483bb65b5f2ed37d2e2e8de..f54fba2ba78cb827725974d1f723a3a8cebe8154 100644 | 
| --- a/src/core/SkDevice.cpp | 
| +++ b/src/core/SkDevice.cpp | 
| @@ -23,21 +23,6 @@ | 
| #include "SkTextBlobRunIterator.h" | 
| #include "SkTextToPathIter.h" | 
|  | 
| -void SkBaseDevice::drawSpecial(const SkDraw&, SkSpecialImage*, int x, int y, const SkPaint&) { | 
| -} | 
| - | 
| -sk_sp<SkSpecialImage> SkBaseDevice::makeSpecial(const SkBitmap&) { | 
| -    return nullptr; | 
| -} | 
| - | 
| -sk_sp<SkSpecialImage> SkBaseDevice::makeSpecial(SkImage*) { | 
| -    return nullptr; | 
| -} | 
| - | 
| -sk_sp<SkSpecialImage> SkBaseDevice::snapSpecial() { | 
| -    return nullptr; | 
| -} | 
| - | 
| SkBaseDevice::SkBaseDevice(const SkSurfaceProps& surfaceProps) | 
| : fSurfaceProps(surfaceProps) | 
| #ifdef SK_DEBUG | 
| @@ -236,6 +221,13 @@ void SkBaseDevice::drawAtlas(const SkDraw& draw, const SkImage* atlas, const SkR | 
|  | 
| /////////////////////////////////////////////////////////////////////////////////////////////////// | 
|  | 
| +void SkBaseDevice::drawSpecial(const SkDraw&, SkSpecialImage*, int x, int y, const SkPaint&) {} | 
| +sk_sp<SkSpecialImage> SkBaseDevice::makeSpecial(const SkBitmap&) { return nullptr; } | 
| +sk_sp<SkSpecialImage> SkBaseDevice::makeSpecial(const SkImage*) { return nullptr; } | 
| +sk_sp<SkSpecialImage> SkBaseDevice::snapSpecial() { return nullptr; } | 
| + | 
| +/////////////////////////////////////////////////////////////////////////////////////////////////// | 
| + | 
| bool SkBaseDevice::readPixels(const SkImageInfo& info, void* dstP, size_t rowBytes, int x, int y) { | 
| #ifdef SK_DEBUG | 
| SkASSERT(info.width() > 0 && info.height() > 0); | 
|  |