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()); |