// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. #include "bin/io_buffer.h" namespace dart { namespace bin { Dart_Handle IOBuffer::Allocate(intptr_t size, uint8_t** buffer) { uint8_t* data = Allocate(size); Dart_Handle result = Dart_NewExternalTypedData(Dart_TypedData_kUint8, data, size); Dart_NewWeakPersistentHandle(result, data, size, IOBuffer::Finalizer); if (Dart_IsError(result)) { Free(data); Dart_PropagateError(result); } if (buffer != NULL) { *buffer = data; } return result; } uint8_t* IOBuffer::Allocate(intptr_t size) { return new uint8_t[size]; } } // namespace bin } // namespace dart