hide SkImageDeserializer

Bug: skia:
Change-Id: I1cd4e8c626628a3e6426afd7d6bae628d58989c3
Reviewed-on: https://skia-review.googlesource.com/85743
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
diff --git a/include/core/SkImageDeserializer.h b/include/core/SkImageDeserializer.h
index ba14226..a8e37b6 100644
--- a/include/core/SkImageDeserializer.h
+++ b/include/core/SkImageDeserializer.h
@@ -14,6 +14,7 @@
 class SkData;
 class SkImage;
 
+#ifdef SK_SUPPORT_LEGACY_IMAGEDESERIALIZER
 class SK_API SkImageDeserializer {
 public:
     virtual ~SkImageDeserializer() {}
@@ -32,5 +33,6 @@
     virtual sk_sp<SkImage> makeFromData(SkData*, const SkIRect* subset);
     virtual sk_sp<SkImage> makeFromMemory(const void* data, size_t length, const SkIRect* subset);
 };
+#endif
 
 #endif
diff --git a/include/core/SkPicture.h b/include/core/SkPicture.h
index 1e32636..cb8dcc2 100644
--- a/include/core/SkPicture.h
+++ b/include/core/SkPicture.h
@@ -19,7 +19,9 @@
 class SkData;
 struct SkDeserialProcs;
 class SkImage;
+#ifdef SK_SUPPORT_LEGACY_IMAGEDESERIALIZER
 class SkImageDeserializer;
+#endif
 class SkPath;
 class SkPictureData;
 class SkPixelSerializer;
@@ -58,11 +60,15 @@
      *  Any serialized images in the stream will be passed the image-deserializer, or if that is
      *  null, to the default deserializer that will call SkImage::MakeFromEncoded().
      */
+#ifdef SK_SUPPORT_LEGACY_IMAGEDESERIALIZER
     static sk_sp<SkPicture> MakeFromStream(SkStream*, SkImageDeserializer*);
+    static sk_sp<SkPicture> MakeFromData(const SkData* data, SkImageDeserializer*);
+    static sk_sp<SkPicture> MakeFromData(const void* data, size_t size, SkImageDeserializer*);
+#endif
+
     static sk_sp<SkPicture> MakeFromStream(SkStream*);
-    static sk_sp<SkPicture> MakeFromData(const void* data, size_t size,
-                                         SkImageDeserializer* = nullptr);
-    static sk_sp<SkPicture> MakeFromData(const SkData* data, SkImageDeserializer* = nullptr);
+    static sk_sp<SkPicture> MakeFromData(const SkData* data);
+    static sk_sp<SkPicture> MakeFromData(const void* data, size_t size);
 
     static sk_sp<SkPicture> MakeFromStream(SkStream*, const SkDeserialProcs& procs);
     static sk_sp<SkPicture> MakeFromData(const SkData* data, const SkDeserialProcs& procs);
diff --git a/include/core/SkWriteBuffer.h b/include/core/SkWriteBuffer.h
index b0b6fd9..0b1ae0c 100644
--- a/include/core/SkWriteBuffer.h
+++ b/include/core/SkWriteBuffer.h
@@ -9,8 +9,6 @@
 #ifndef SkWriteBuffer_DEFINED
 #define SkWriteBuffer_DEFINED
 
-#define SK_SUPPORT_LEGACY_SERIAL_BUFFER_OBJECTS
-
 #include "SkData.h"
 #include "SkImage.h"
 #include "SkPath.h"
@@ -20,9 +18,7 @@
 #include "SkWriter32.h"
 #include "../private/SkTHash.h"
 
-#ifdef SK_SUPPORT_LEGACY_SERIAL_BUFFER_OBJECTS
 #include "SkPixelSerializer.h"
-#endif
 
 class SkBitmap;
 class SkDeduper;
@@ -157,9 +153,7 @@
     SkFactorySet* setFactoryRecorder(SkFactorySet*);
     SkRefCntSet* setTypefaceRecorder(SkRefCntSet*);
 
-#ifdef SK_SUPPORT_LEGACY_SERIAL_BUFFER_OBJECTS
     void setPixelSerializer(sk_sp<SkPixelSerializer>);
-#endif
 
 private:
     const uint32_t fFlags;
@@ -171,9 +165,7 @@
     // Only used if we do not have an fFactorySet
     SkTHashMap<SkString, uint32_t> fFlattenableDict;
 
-#ifdef SK_SUPPORT_LEGACY_SERIAL_BUFFER_OBJECTS
     sk_sp<SkPixelSerializer> fPS;
-#endif
 };
 
 #endif // SkWriteBuffer_DEFINED
diff --git a/src/core/SkPicture.cpp b/src/core/SkPicture.cpp
index 2761c41..f5085a6 100644
--- a/src/core/SkPicture.cpp
+++ b/src/core/SkPicture.cpp
@@ -143,18 +143,13 @@
     return r.finishRecordingAsPicture();
 }
 
+#ifdef SK_SUPPORT_LEGACY_IMAGEDESERIALIZER
 sk_sp<SkPicture> SkPicture::MakeFromStream(SkStream* stream, SkImageDeserializer* factory) {
     SkDeserialProcs procs;
     procs.fImageProc = ImageDeserializer_SkDeserialImageProc;
     procs.fImageCtx  = factory;
     return MakeFromStream(stream, procs, nullptr);
 }
-
-sk_sp<SkPicture> SkPicture::MakeFromStream(SkStream* stream) {
-    SkImageDeserializer factory;
-    return MakeFromStream(stream, &factory);
-}
-
 sk_sp<SkPicture> SkPicture::MakeFromData(const void* data, size_t size,
                                          SkImageDeserializer* factory) {
     SkMemoryStream stream(data, size);
@@ -168,6 +163,28 @@
     SkMemoryStream stream(data->data(), data->size());
     return MakeFromStream(&stream, factory);
 }
+#endif
+
+sk_sp<SkPicture> SkPicture::MakeFromStream(SkStream* stream) {
+    return MakeFromStream(stream, SkDeserialProcs(), nullptr);
+}
+
+sk_sp<SkPicture> SkPicture::MakeFromData(const void* data, size_t size) {
+    if (!data) {
+        return nullptr;
+    }
+    SkMemoryStream stream(data, size);
+    return MakeFromStream(&stream, SkDeserialProcs(), nullptr);
+}
+
+sk_sp<SkPicture> SkPicture::MakeFromData(const SkData* data) {
+    if (!data) {
+        return nullptr;
+    }
+    SkMemoryStream stream(data->data(), data->size());
+    return MakeFromStream(&stream, SkDeserialProcs(), nullptr);
+}
+
 
 sk_sp<SkPicture> SkPicture::MakeFromData(const SkData* data, const SkDeserialProcs& procs) {
     if (!data) {
@@ -365,24 +382,13 @@
 
 //////////////////////////////////////////////////////////////////////////////////////////////////
 
+#include "SkReadBuffer.h"
+#include "SkWriteBuffer.h"
+
 sk_sp<SkData> PixelSerializer_SkSerialImageProc(SkImage* img, void* ctx) {
     SkASSERT(ctx);
     return img->encodeToData(static_cast<SkPixelSerializer*>(ctx));
 }
-
-sk_sp<SkImage> ImageDeserializer_SkDeserialImageProc(const void* data, size_t length, void* ctx) {
-    SkASSERT(ctx);
-    SkImageDeserializer* imd = static_cast<SkImageDeserializer*>(ctx);
-    const SkIRect* subset = nullptr;
-    return imd->makeFromMemory(data, length, subset);
-}
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-#ifdef SK_SUPPORT_LEGACY_SERIAL_BUFFER_OBJECTS
-#include "SkReadBuffer.h"
-#include "SkWriteBuffer.h"
-
 void SkBinaryWriteBuffer::setPixelSerializer(sk_sp<SkPixelSerializer> ps) {
     fPS = ps;
     if (ps) {
@@ -394,6 +400,13 @@
     }
 }
 
+#ifdef SK_SUPPORT_LEGACY_IMAGEDESERIALIZER
+sk_sp<SkImage> ImageDeserializer_SkDeserialImageProc(const void* data, size_t length, void* ctx) {
+    SkASSERT(ctx);
+    SkImageDeserializer* imd = static_cast<SkImageDeserializer*>(ctx);
+    const SkIRect* subset = nullptr;
+    return imd->makeFromMemory(data, length, subset);
+}
 void SkReadBuffer::setImageDeserializer(SkImageDeserializer* factory) {
     if (factory) {
         fProcs.fImageProc = ImageDeserializer_SkDeserialImageProc;
diff --git a/src/core/SkReadBuffer.h b/src/core/SkReadBuffer.h
index 4c0ca9b..28ea3d4 100644
--- a/src/core/SkReadBuffer.h
+++ b/src/core/SkReadBuffer.h
@@ -216,7 +216,7 @@
 
     void setDeserialProcs(const SkDeserialProcs& procs);
 
-#ifdef SK_SUPPORT_LEGACY_SERIAL_BUFFER_OBJECTS
+#ifdef SK_SUPPORT_LEGACY_IMAGEDESERIALIZER
     void setImageDeserializer(SkImageDeserializer* factory);
 #endif
 
diff --git a/src/image/SkImage.cpp b/src/image/SkImage.cpp
index 01aceab..31104d2 100644
--- a/src/image/SkImage.cpp
+++ b/src/image/SkImage.cpp
@@ -405,6 +405,7 @@
 }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
+#ifdef SK_SUPPORT_LEGACY_IMAGEDESERIALIZER
 #include "SkImageDeserializer.h"
 
 sk_sp<SkImage> SkImageDeserializer::makeFromData(SkData* data, const SkIRect* subset) {
@@ -414,6 +415,7 @@
                                                    const SkIRect* subset) {
     return SkImage::MakeFromEncoded(SkData::MakeWithCopy(data, length), subset);
 }
+#endif
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////