| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "src/runtime/runtime-utils.h" | 5 #include "src/runtime/runtime-utils.h" |
| 6 | 6 |
| 7 #include "src/arguments.h" | 7 #include "src/arguments.h" |
| 8 #include "src/factory.h" | 8 #include "src/factory.h" |
| 9 #include "src/messages.h" | 9 #include "src/messages.h" |
| 10 #include "src/objects-inl.h" | 10 #include "src/objects-inl.h" |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 85 if (array_buffer->backing_store() == NULL) { | 85 if (array_buffer->backing_store() == NULL) { |
| 86 CHECK(Smi::FromInt(0) == array_buffer->byte_length()); | 86 CHECK(Smi::FromInt(0) == array_buffer->byte_length()); |
| 87 return isolate->heap()->undefined_value(); | 87 return isolate->heap()->undefined_value(); |
| 88 } | 88 } |
| 89 // Shared array buffers should never be neutered. | 89 // Shared array buffers should never be neutered. |
| 90 RUNTIME_ASSERT(!array_buffer->is_shared()); | 90 RUNTIME_ASSERT(!array_buffer->is_shared()); |
| 91 DCHECK(!array_buffer->is_external()); | 91 DCHECK(!array_buffer->is_external()); |
| 92 void* backing_store = array_buffer->backing_store(); | 92 void* backing_store = array_buffer->backing_store(); |
| 93 size_t byte_length = NumberToSize(isolate, array_buffer->byte_length()); | 93 size_t byte_length = NumberToSize(isolate, array_buffer->byte_length()); |
| 94 array_buffer->set_is_external(true); | 94 array_buffer->set_is_external(true); |
| 95 isolate->heap()->UnregisterArrayBuffer(*array_buffer); |
| 95 array_buffer->Neuter(); | 96 array_buffer->Neuter(); |
| 96 isolate->heap()->UnregisterArrayBuffer( | |
| 97 isolate->heap()->InNewSpace(*array_buffer), backing_store); | |
| 98 isolate->array_buffer_allocator()->Free(backing_store, byte_length); | 97 isolate->array_buffer_allocator()->Free(backing_store, byte_length); |
| 99 return isolate->heap()->undefined_value(); | 98 return isolate->heap()->undefined_value(); |
| 100 } | 99 } |
| 101 | 100 |
| 102 | 101 |
| 103 void Runtime::ArrayIdToTypeAndSize(int arrayId, ExternalArrayType* array_type, | 102 void Runtime::ArrayIdToTypeAndSize(int arrayId, ExternalArrayType* array_type, |
| 104 ElementsKind* fixed_elements_kind, | 103 ElementsKind* fixed_elements_kind, |
| 105 size_t* element_size) { | 104 size_t* element_size) { |
| 106 switch (arrayId) { | 105 switch (arrayId) { |
| 107 #define ARRAY_ID_CASE(Type, type, TYPE, ctype, size) \ | 106 #define ARRAY_ID_CASE(Type, type, TYPE, ctype, size) \ |
| (...skipping 574 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 682 DATA_VIEW_SETTER(Uint16, uint16_t) | 681 DATA_VIEW_SETTER(Uint16, uint16_t) |
| 683 DATA_VIEW_SETTER(Int16, int16_t) | 682 DATA_VIEW_SETTER(Int16, int16_t) |
| 684 DATA_VIEW_SETTER(Uint32, uint32_t) | 683 DATA_VIEW_SETTER(Uint32, uint32_t) |
| 685 DATA_VIEW_SETTER(Int32, int32_t) | 684 DATA_VIEW_SETTER(Int32, int32_t) |
| 686 DATA_VIEW_SETTER(Float32, float) | 685 DATA_VIEW_SETTER(Float32, float) |
| 687 DATA_VIEW_SETTER(Float64, double) | 686 DATA_VIEW_SETTER(Float64, double) |
| 688 | 687 |
| 689 #undef DATA_VIEW_SETTER | 688 #undef DATA_VIEW_SETTER |
| 690 } // namespace internal | 689 } // namespace internal |
| 691 } // namespace v8 | 690 } // namespace v8 |
| OLD | NEW |