134504ad9242e1c45ef9c1eb74edf437992df98b4commit-bot@chromium.org/* 234504ad9242e1c45ef9c1eb74edf437992df98b4commit-bot@chromium.org * Copyright 2013 Google Inc. 334504ad9242e1c45ef9c1eb74edf437992df98b4commit-bot@chromium.org * 434504ad9242e1c45ef9c1eb74edf437992df98b4commit-bot@chromium.org * Use of this source code is governed by a BSD-style license that can be 534504ad9242e1c45ef9c1eb74edf437992df98b4commit-bot@chromium.org * found in the LICENSE file. 634504ad9242e1c45ef9c1eb74edf437992df98b4commit-bot@chromium.org */ 734504ad9242e1c45ef9c1eb74edf437992df98b4commit-bot@chromium.org 834504ad9242e1c45ef9c1eb74edf437992df98b4commit-bot@chromium.org#include "SkFlattenableSerialization.h" 934504ad9242e1c45ef9c1eb74edf437992df98b4commit-bot@chromium.org 1034504ad9242e1c45ef9c1eb74edf437992df98b4commit-bot@chromium.org#include "SkData.h" 1177e079af1a909ee9d14306db48561d77e2f9fcabcommit-bot@chromium.org#include "SkValidatingReadBuffer.h" 128b0e8ac5f582de80356019406e2975079bf0829dcommit-bot@chromium.org#include "SkWriteBuffer.h" 1334504ad9242e1c45ef9c1eb74edf437992df98b4commit-bot@chromium.org 1477e079af1a909ee9d14306db48561d77e2f9fcabcommit-bot@chromium.orgSkData* SkValidatingSerializeFlattenable(SkFlattenable* flattenable) { 15a2bd2d12ad9504583e9311404fcd82b40df49d30commit-bot@chromium.org SkWriteBuffer writer(SkWriteBuffer::kValidation_Flag); 1634504ad9242e1c45ef9c1eb74edf437992df98b4commit-bot@chromium.org writer.writeFlattenable(flattenable); 176fcd28ba1de83b72f4c8343ccec27d26c127de32reed@google.com size_t size = writer.bytesWritten(); 1833a30503d76fdd989358cedd78445ba96bb809ddreed SkData* data = SkData::NewUninitialized(size); 1933a30503d76fdd989358cedd78445ba96bb809ddreed writer.writeToMemory(data->writable_data()); 2033a30503d76fdd989358cedd78445ba96bb809ddreed return data; 2134504ad9242e1c45ef9c1eb74edf437992df98b4commit-bot@chromium.org} 2234504ad9242e1c45ef9c1eb74edf437992df98b4commit-bot@chromium.org 2377e079af1a909ee9d14306db48561d77e2f9fcabcommit-bot@chromium.orgSkFlattenable* SkValidatingDeserializeFlattenable(const void* data, size_t size, 2477e079af1a909ee9d14306db48561d77e2f9fcabcommit-bot@chromium.org SkFlattenable::Type type) { 2577e079af1a909ee9d14306db48561d77e2f9fcabcommit-bot@chromium.org SkValidatingReadBuffer buffer(data, size); 2677e079af1a909ee9d14306db48561d77e2f9fcabcommit-bot@chromium.org return buffer.readFlattenable(type); 2734504ad9242e1c45ef9c1eb74edf437992df98b4commit-bot@chromium.org} 28