OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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/api.h" | 5 #include "src/api.h" |
6 | 6 |
7 #include <string.h> // For memcpy, strlen. | 7 #include <string.h> // For memcpy, strlen. |
8 #ifdef V8_USE_ADDRESS_SANITIZER | 8 #ifdef V8_USE_ADDRESS_SANITIZER |
9 #include <sanitizer/asan_interface.h> | 9 #include <sanitizer/asan_interface.h> |
10 #endif // V8_USE_ADDRESS_SANITIZER | 10 #endif // V8_USE_ADDRESS_SANITIZER |
(...skipping 659 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
670 i::Object** V8::CopyPersistent(i::Object** obj) { | 670 i::Object** V8::CopyPersistent(i::Object** obj) { |
671 i::Handle<i::Object> result = i::GlobalHandles::CopyGlobal(obj); | 671 i::Handle<i::Object> result = i::GlobalHandles::CopyGlobal(obj); |
672 #ifdef VERIFY_HEAP | 672 #ifdef VERIFY_HEAP |
673 if (i::FLAG_verify_heap) { | 673 if (i::FLAG_verify_heap) { |
674 (*obj)->ObjectVerify(); | 674 (*obj)->ObjectVerify(); |
675 } | 675 } |
676 #endif // VERIFY_HEAP | 676 #endif // VERIFY_HEAP |
677 return result.location(); | 677 return result.location(); |
678 } | 678 } |
679 | 679 |
| 680 void V8::RegisterExternallyReferencedObject(i::Object** object, |
| 681 i::Isolate* isolate) { |
| 682 isolate->heap()->RegisterExternallyReferencedObject(object); |
| 683 } |
680 | 684 |
681 void V8::MakeWeak(i::Object** object, void* parameter, | 685 void V8::MakeWeak(i::Object** object, void* parameter, |
682 WeakCallback weak_callback) { | 686 WeakCallback weak_callback) { |
683 i::GlobalHandles::MakeWeak(object, parameter, weak_callback); | 687 i::GlobalHandles::MakeWeak(object, parameter, weak_callback); |
684 } | 688 } |
685 | 689 |
686 | 690 |
687 void V8::MakeWeak(i::Object** object, void* parameter, | 691 void V8::MakeWeak(i::Object** object, void* parameter, |
688 int internal_field_index1, int internal_field_index2, | 692 int internal_field_index1, int internal_field_index2, |
689 WeakCallbackInfo<void>::Callback weak_callback) { | 693 WeakCallbackInfo<void>::Callback weak_callback) { |
(...skipping 6477 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7167 reinterpret_cast<v8::Isolate::GCCallback>(callback), gc_type, false); | 7171 reinterpret_cast<v8::Isolate::GCCallback>(callback), gc_type, false); |
7168 } | 7172 } |
7169 | 7173 |
7170 | 7174 |
7171 void V8::AddGCEpilogueCallback(GCCallback callback, GCType gc_type) { | 7175 void V8::AddGCEpilogueCallback(GCCallback callback, GCType gc_type) { |
7172 i::Isolate* isolate = i::Isolate::Current(); | 7176 i::Isolate* isolate = i::Isolate::Current(); |
7173 isolate->heap()->AddGCEpilogueCallback( | 7177 isolate->heap()->AddGCEpilogueCallback( |
7174 reinterpret_cast<v8::Isolate::GCCallback>(callback), gc_type, false); | 7178 reinterpret_cast<v8::Isolate::GCCallback>(callback), gc_type, false); |
7175 } | 7179 } |
7176 | 7180 |
| 7181 void Isolate::SetEmbedderHeapTracer(EmbedderHeapTracer* tracer) { |
| 7182 i::Isolate* isolate = reinterpret_cast<i::Isolate*>(this); |
| 7183 isolate->heap()->SetEmbedderHeapTracer(tracer); |
| 7184 } |
7177 | 7185 |
7178 void Isolate::AddMemoryAllocationCallback(MemoryAllocationCallback callback, | 7186 void Isolate::AddMemoryAllocationCallback(MemoryAllocationCallback callback, |
7179 ObjectSpace space, | 7187 ObjectSpace space, |
7180 AllocationAction action) { | 7188 AllocationAction action) { |
7181 i::Isolate* isolate = reinterpret_cast<i::Isolate*>(this); | 7189 i::Isolate* isolate = reinterpret_cast<i::Isolate*>(this); |
7182 isolate->memory_allocator()->AddMemoryAllocationCallback( | 7190 isolate->memory_allocator()->AddMemoryAllocationCallback( |
7183 callback, space, action); | 7191 callback, space, action); |
7184 } | 7192 } |
7185 | 7193 |
7186 | 7194 |
(...skipping 1574 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8761 Address callback_address = | 8769 Address callback_address = |
8762 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); | 8770 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); |
8763 VMState<EXTERNAL> state(isolate); | 8771 VMState<EXTERNAL> state(isolate); |
8764 ExternalCallbackScope call_scope(isolate, callback_address); | 8772 ExternalCallbackScope call_scope(isolate, callback_address); |
8765 callback(info); | 8773 callback(info); |
8766 } | 8774 } |
8767 | 8775 |
8768 | 8776 |
8769 } // namespace internal | 8777 } // namespace internal |
8770 } // namespace v8 | 8778 } // namespace v8 |
OLD | NEW |