aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkFlattenableSerialization.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/SkFlattenableSerialization.cpp')
-rw-r--r--src/core/SkFlattenableSerialization.cpp18
1 files changed, 5 insertions, 13 deletions
diff --git a/src/core/SkFlattenableSerialization.cpp b/src/core/SkFlattenableSerialization.cpp
index e72b4c5348..3976010fb2 100644
--- a/src/core/SkFlattenableSerialization.cpp
+++ b/src/core/SkFlattenableSerialization.cpp
@@ -6,27 +6,19 @@
*/
#include "SkFlattenableSerialization.h"
-
#include "SkData.h"
-#include "SkValidatingReadBuffer.h"
-#include "SkWriteBuffer.h"
+#include "SkImageFilter.h"
SkData* SkValidatingSerializeFlattenable(SkFlattenable* flattenable) {
- SkBinaryWriteBuffer writer;
- writer.writeFlattenable(flattenable);
- size_t size = writer.bytesWritten();
- auto data = SkData::MakeUninitialized(size);
- writer.writeToMemory(data->writable_data());
- return data.release();
+ return flattenable->serialize().release();
}
SkFlattenable* SkValidatingDeserializeFlattenable(const void* data, size_t size,
SkFlattenable::Type type) {
- SkValidatingReadBuffer buffer(data, size);
- return buffer.readFlattenable(type);
+ return SkFlattenable::Deserialize(type, data, size).release();
}
sk_sp<SkImageFilter> SkValidatingDeserializeImageFilter(const void* data, size_t size) {
- return sk_sp<SkImageFilter>((SkImageFilter*)SkValidatingDeserializeFlattenable(
- data, size, SkImageFilter::GetFlattenableType()));
+ auto flat = SkFlattenable::Deserialize(SkFlattenable::kSkImageFilter_Type, data, size);
+ return sk_sp<SkImageFilter>(static_cast<SkImageFilter*>(flat.release()));
}