| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 382 if (data == NULL) { | 382 if (data == NULL) { |
| 383 return Throw("Memory allocation failed"); | 383 return Throw("Memory allocation failed"); |
| 384 } | 384 } |
| 385 memset(data, 0, length); | 385 memset(data, 0, length); |
| 386 | 386 |
| 387 buffer->SetHiddenValue(Symbols::ArrayBufferMarkerPropName(isolate), True()); | 387 buffer->SetHiddenValue(Symbols::ArrayBufferMarkerPropName(isolate), True()); |
| 388 Persistent<Object> persistent_array = | 388 Persistent<Object> persistent_array = |
| 389 Persistent<Object>::New(isolate, buffer); | 389 Persistent<Object>::New(isolate, buffer); |
| 390 persistent_array.MakeWeak(isolate, data, ExternalArrayWeakCallback); | 390 persistent_array.MakeWeak(isolate, data, ExternalArrayWeakCallback); |
| 391 persistent_array.MarkIndependent(isolate); | 391 persistent_array.MarkIndependent(isolate); |
| 392 V8::AdjustAmountOfExternalAllocatedMemory(length); | 392 isolate->AdjustAmountOfExternalAllocatedMemory(length); |
| 393 | 393 |
| 394 buffer->SetIndexedPropertiesToExternalArrayData( | 394 buffer->SetIndexedPropertiesToExternalArrayData( |
| 395 data, v8::kExternalByteArray, length); | 395 data, v8::kExternalByteArray, length); |
| 396 buffer->Set(Symbols::byteLength(isolate), | 396 buffer->Set(Symbols::byteLength(isolate), |
| 397 Int32::New(length, isolate), | 397 Int32::New(length, isolate), |
| 398 ReadOnly); | 398 ReadOnly); |
| 399 | 399 |
| 400 return buffer; | 400 return buffer; |
| 401 } | 401 } |
| 402 | 402 |
| (...skipping 420 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 823 return Undefined(args.GetIsolate()); | 823 return Undefined(args.GetIsolate()); |
| 824 } | 824 } |
| 825 | 825 |
| 826 | 826 |
| 827 void Shell::ExternalArrayWeakCallback(v8::Isolate* isolate, | 827 void Shell::ExternalArrayWeakCallback(v8::Isolate* isolate, |
| 828 Persistent<Value> object, | 828 Persistent<Value> object, |
| 829 void* data) { | 829 void* data) { |
| 830 HandleScope scope; | 830 HandleScope scope; |
| 831 int32_t length = | 831 int32_t length = |
| 832 object->ToObject()->Get(Symbols::byteLength(isolate))->Uint32Value(); | 832 object->ToObject()->Get(Symbols::byteLength(isolate))->Uint32Value(); |
| 833 V8::AdjustAmountOfExternalAllocatedMemory(-length); | 833 isolate->AdjustAmountOfExternalAllocatedMemory(-length); |
| 834 delete[] static_cast<uint8_t*>(data); | 834 delete[] static_cast<uint8_t*>(data); |
| 835 object.Dispose(isolate); | 835 object.Dispose(isolate); |
| 836 } | 836 } |
| 837 | 837 |
| 838 | 838 |
| 839 Handle<Value> Shell::Int8Array(const Arguments& args) { | 839 Handle<Value> Shell::Int8Array(const Arguments& args) { |
| 840 return CreateExternalArray(args, v8::kExternalByteArray, sizeof(int8_t)); | 840 return CreateExternalArray(args, v8::kExternalByteArray, sizeof(int8_t)); |
| 841 } | 841 } |
| 842 | 842 |
| 843 | 843 |
| (...skipping 595 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1439 if (data == NULL) { | 1439 if (data == NULL) { |
| 1440 return Throw("Error reading file"); | 1440 return Throw("Error reading file"); |
| 1441 } | 1441 } |
| 1442 Isolate* isolate = args.GetIsolate(); | 1442 Isolate* isolate = args.GetIsolate(); |
| 1443 Handle<Object> buffer = Object::New(); | 1443 Handle<Object> buffer = Object::New(); |
| 1444 buffer->SetHiddenValue(Symbols::ArrayBufferMarkerPropName(isolate), True()); | 1444 buffer->SetHiddenValue(Symbols::ArrayBufferMarkerPropName(isolate), True()); |
| 1445 Persistent<Object> persistent_buffer = | 1445 Persistent<Object> persistent_buffer = |
| 1446 Persistent<Object>::New(isolate, buffer); | 1446 Persistent<Object>::New(isolate, buffer); |
| 1447 persistent_buffer.MakeWeak(isolate, data, ExternalArrayWeakCallback); | 1447 persistent_buffer.MakeWeak(isolate, data, ExternalArrayWeakCallback); |
| 1448 persistent_buffer.MarkIndependent(isolate); | 1448 persistent_buffer.MarkIndependent(isolate); |
| 1449 V8::AdjustAmountOfExternalAllocatedMemory(length); | 1449 isolate->AdjustAmountOfExternalAllocatedMemory(length); |
| 1450 | 1450 |
| 1451 buffer->SetIndexedPropertiesToExternalArrayData( | 1451 buffer->SetIndexedPropertiesToExternalArrayData( |
| 1452 data, kExternalUnsignedByteArray, length); | 1452 data, kExternalUnsignedByteArray, length); |
| 1453 buffer->Set(Symbols::byteLength(isolate), | 1453 buffer->Set(Symbols::byteLength(isolate), |
| 1454 Int32::New(static_cast<int32_t>(length), isolate), ReadOnly); | 1454 Int32::New(static_cast<int32_t>(length), isolate), ReadOnly); |
| 1455 return buffer; | 1455 return buffer; |
| 1456 } | 1456 } |
| 1457 | 1457 |
| 1458 | 1458 |
| 1459 #ifndef V8_SHARED | 1459 #ifndef V8_SHARED |
| (...skipping 502 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1962 } | 1962 } |
| 1963 | 1963 |
| 1964 } // namespace v8 | 1964 } // namespace v8 |
| 1965 | 1965 |
| 1966 | 1966 |
| 1967 #ifndef GOOGLE3 | 1967 #ifndef GOOGLE3 |
| 1968 int main(int argc, char* argv[]) { | 1968 int main(int argc, char* argv[]) { |
| 1969 return v8::Shell::Main(argc, argv); | 1969 return v8::Shell::Main(argc, argv); |
| 1970 } | 1970 } |
| 1971 #endif | 1971 #endif |
| OLD | NEW |