aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--include/core/SkFlattenable.h6
-rw-r--r--src/core/SkFlattenableSerialization.cpp3
2 files changed, 7 insertions, 2 deletions
diff --git a/include/core/SkFlattenable.h b/include/core/SkFlattenable.h
index 5faf7c2317..eaaf9c3d92 100644
--- a/include/core/SkFlattenable.h
+++ b/include/core/SkFlattenable.h
@@ -64,6 +64,12 @@ struct SkDeserialProcs;
} \
Type getFlattenableType() const override { \
return k##flattenable##_Type; \
+ } \
+ static sk_sp<flattenable> Deserialize(const void* data, size_t size, \
+ const SkDeserialProcs* procs = nullptr) { \
+ return sk_sp<flattenable>(static_cast<flattenable*>( \
+ SkFlattenable::Deserialize( \
+ k##flattenable##_Type, data, size, procs).release()));\
}
/** \class SkFlattenable
diff --git a/src/core/SkFlattenableSerialization.cpp b/src/core/SkFlattenableSerialization.cpp
index 3976010fb2..b2d4aa83f6 100644
--- a/src/core/SkFlattenableSerialization.cpp
+++ b/src/core/SkFlattenableSerialization.cpp
@@ -19,6 +19,5 @@ SkFlattenable* SkValidatingDeserializeFlattenable(const void* data, size_t size,
}
sk_sp<SkImageFilter> SkValidatingDeserializeImageFilter(const void* data, size_t size) {
- auto flat = SkFlattenable::Deserialize(SkFlattenable::kSkImageFilter_Type, data, size);
- return sk_sp<SkImageFilter>(static_cast<SkImageFilter*>(flat.release()));
+ return SkImageFilter::Deserialize(data, size);
}