Chromium Code Reviews| Index: runtime/vm/isolate.cc |
| diff --git a/runtime/vm/isolate.cc b/runtime/vm/isolate.cc |
| index 76e62354197c7c60ab20b24dc4c4f12c0d09bc7c..cde64b085bf2af2b3871456d3476a074e865b025 100644 |
| --- a/runtime/vm/isolate.cc |
| +++ b/runtime/vm/isolate.cc |
| @@ -26,6 +26,7 @@ |
| #include "vm/thread.h" |
| #include "vm/timer.h" |
| #include "vm/visitor.h" |
| +#include "vm/object_id_ring.h" |
| namespace dart { |
| @@ -415,6 +416,7 @@ Isolate::Isolate() |
| stacktrace_(NULL), |
| stack_frame_index_(-1), |
| object_histogram_(NULL), |
| + object_id_ring_(NULL), |
| REUSABLE_HANDLE_LIST(REUSABLE_HANDLE_INITIALIZERS) |
| reusable_handles_() { |
| if (FLAG_print_object_histogram && (Dart::vm_isolate() != NULL)) { |
| @@ -1069,6 +1071,17 @@ char* Isolate::GetStatus(const char* request) { |
| } |
| +void Isolate::set_object_id_ring(ObjectIdRing* ring) { |
|
Ivan Posva
2013/07/10 01:10:13
If the code is this involved and not in the header
Cutch
2013/07/10 17:23:10
Done.
|
| + ASSERT(heap_ != NULL); |
| + object_id_ring_ = ring; |
| + if (ring == NULL) { |
| + heap_->set_object_id_ring_table(NULL, 0); |
| + } else { |
| + heap_->set_object_id_ring_table(ring->table_, ring->capacity_); |
| + } |
| +} |
| + |
| + |
| template<class T> |
| T* Isolate::AllocateReusableHandle() { |
| T* handle = reinterpret_cast<T*>(reusable_handles_.AllocateScopedHandle()); |