| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "bin/dartutils.h" | 5 #include "bin/dartutils.h" |
| 6 | 6 |
| 7 #include "bin/extensions.h" | 7 #include "bin/extensions.h" |
| 8 #include "bin/directory.h" | 8 #include "bin/directory.h" |
| 9 #include "bin/file.h" | 9 #include "bin/file.h" |
| 10 #include "bin/io_buffer.h" | 10 #include "bin/io_buffer.h" |
| (...skipping 660 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 671 Dart_CObject* cobject = | 671 Dart_CObject* cobject = |
| 672 New(Dart_CObject::kArray, length * sizeof(Dart_CObject*)); // NOLINT | 672 New(Dart_CObject::kArray, length * sizeof(Dart_CObject*)); // NOLINT |
| 673 cobject->value.as_array.length = length; | 673 cobject->value.as_array.length = length; |
| 674 cobject->value.as_array.values = | 674 cobject->value.as_array.values = |
| 675 reinterpret_cast<Dart_CObject**>(cobject + 1); | 675 reinterpret_cast<Dart_CObject**>(cobject + 1); |
| 676 return cobject; | 676 return cobject; |
| 677 } | 677 } |
| 678 | 678 |
| 679 | 679 |
| 680 Dart_CObject* CObject::NewUint8Array(int length) { | 680 Dart_CObject* CObject::NewUint8Array(int length) { |
| 681 Dart_CObject* cobject = New(Dart_CObject::kUint8Array, length); | 681 Dart_CObject* cobject = New(Dart_CObject::kTypedData, length); |
| 682 cobject->value.as_byte_array.length = length; | 682 cobject->value.as_typed_data.type = Dart_CObject::kUint8Array; |
| 683 cobject->value.as_byte_array.values = reinterpret_cast<uint8_t*>(cobject + 1); | 683 cobject->value.as_typed_data.length = length; |
| 684 cobject->value.as_typed_data.values = reinterpret_cast<uint8_t*>(cobject + 1); |
| 684 return cobject; | 685 return cobject; |
| 685 } | 686 } |
| 686 | 687 |
| 687 | 688 |
| 688 Dart_CObject* CObject::NewExternalUint8Array( | 689 Dart_CObject* CObject::NewExternalUint8Array( |
| 689 int64_t length, uint8_t* data, void* peer, | 690 int64_t length, uint8_t* data, void* peer, |
| 690 Dart_WeakPersistentHandleFinalizer callback) { | 691 Dart_WeakPersistentHandleFinalizer callback) { |
| 691 Dart_CObject* cobject = New(Dart_CObject::kExternalUint8Array); | 692 Dart_CObject* cobject = New(Dart_CObject::kExternalTypedData); |
| 692 cobject->value.as_external_byte_array.length = length; | 693 cobject->value.as_external_typed_data.type = Dart_CObject::kUint8Array; |
| 693 cobject->value.as_external_byte_array.data = data; | 694 cobject->value.as_external_typed_data.length = length; |
| 694 cobject->value.as_external_byte_array.peer = peer; | 695 cobject->value.as_external_typed_data.data = data; |
| 695 cobject->value.as_external_byte_array.callback = callback; | 696 cobject->value.as_external_typed_data.peer = peer; |
| 697 cobject->value.as_external_typed_data.callback = callback; |
| 696 return cobject; | 698 return cobject; |
| 697 } | 699 } |
| 698 | 700 |
| 699 | 701 |
| 700 Dart_CObject* CObject::NewIOBuffer(int64_t length) { | 702 Dart_CObject* CObject::NewIOBuffer(int64_t length) { |
| 701 uint8_t* data = IOBuffer::Allocate(length); | 703 uint8_t* data = IOBuffer::Allocate(length); |
| 702 return NewExternalUint8Array(length, data, data, IOBuffer::Finalizer); | 704 return NewExternalUint8Array(length, data, data, IOBuffer::Finalizer); |
| 703 } | 705 } |
| 704 | 706 |
| 705 | 707 |
| 706 void CObject::FreeIOBufferData(Dart_CObject* cobject) { | 708 void CObject::FreeIOBufferData(Dart_CObject* cobject) { |
| 707 ASSERT(cobject->type == Dart_CObject::kExternalUint8Array); | 709 ASSERT(cobject->type == Dart_CObject::kExternalTypedData); |
| 708 cobject->value.as_external_byte_array.callback( | 710 cobject->value.as_external_typed_data.callback( |
| 709 NULL, cobject->value.as_external_byte_array.peer); | 711 NULL, cobject->value.as_external_typed_data.peer); |
| 710 cobject->value.as_external_byte_array.data = NULL; | 712 cobject->value.as_external_typed_data.data = NULL; |
| 711 } | 713 } |
| 712 | 714 |
| 713 | 715 |
| 714 static int kArgumentError = 1; | 716 static int kArgumentError = 1; |
| 715 static int kOSError = 2; | 717 static int kOSError = 2; |
| 716 static int kFileClosedError = 3; | 718 static int kFileClosedError = 3; |
| 717 | 719 |
| 718 | 720 |
| 719 CObject* CObject::IllegalArgumentError() { | 721 CObject* CObject::IllegalArgumentError() { |
| 720 CObjectArray* result = new CObjectArray(CObject::NewArray(1)); | 722 CObjectArray* result = new CObjectArray(CObject::NewArray(1)); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 737 | 739 |
| 738 CObject* CObject::NewOSError(OSError* os_error) { | 740 CObject* CObject::NewOSError(OSError* os_error) { |
| 739 CObject* error_message = | 741 CObject* error_message = |
| 740 new CObjectString(CObject::NewString(os_error->message())); | 742 new CObjectString(CObject::NewString(os_error->message())); |
| 741 CObjectArray* result = new CObjectArray(CObject::NewArray(3)); | 743 CObjectArray* result = new CObjectArray(CObject::NewArray(3)); |
| 742 result->SetAt(0, new CObjectInt32(CObject::NewInt32(kOSError))); | 744 result->SetAt(0, new CObjectInt32(CObject::NewInt32(kOSError))); |
| 743 result->SetAt(1, new CObjectInt32(CObject::NewInt32(os_error->code()))); | 745 result->SetAt(1, new CObjectInt32(CObject::NewInt32(os_error->code()))); |
| 744 result->SetAt(2, error_message); | 746 result->SetAt(2, error_message); |
| 745 return result; | 747 return result; |
| 746 } | 748 } |
| OLD | NEW |