Home | History | Annotate | Download | only in core
      1 /*
      2  * Copyright 2013 Google Inc.
      3  *
      4  * Use of this source code is governed by a BSD-style license that can be
      5  * found in the LICENSE file.
      6  */
      7 
      8 #include "SkFlattenableSerialization.h"
      9 
     10 #include "SkData.h"
     11 #include "SkValidatingReadBuffer.h"
     12 #include "SkWriteBuffer.h"
     13 
     14 SkData* SkValidatingSerializeFlattenable(SkFlattenable* flattenable) {
     15     SkWriteBuffer writer(SkWriteBuffer::kValidation_Flag);
     16     writer.writeFlattenable(flattenable);
     17     size_t size = writer.bytesWritten();
     18     SkData* data = SkData::NewUninitialized(size);
     19     writer.writeToMemory(data->writable_data());
     20     return data;
     21 }
     22 
     23 SkFlattenable* SkValidatingDeserializeFlattenable(const void* data, size_t size,
     24                                                   SkFlattenable::Type type) {
     25     SkValidatingReadBuffer buffer(data, size);
     26     return buffer.readFlattenable(type);
     27 }
     28