Index: runtime/vm/object.cc |
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc |
index 0d8ddc144d4b14b28dee4f3b50eb1be19f7a097a..119093aa12f737a7df98d365496e498bfc45b004 100644 |
--- a/runtime/vm/object.cc |
+++ b/runtime/vm/object.cc |
@@ -1718,8 +1718,8 @@ RawObject* Object::Allocate(intptr_t cls_id, |
class StoreBufferUpdateVisitor : public ObjectPointerVisitor { |
public: |
- explicit StoreBufferUpdateVisitor(Isolate* isolate, RawObject* obj) : |
- ObjectPointerVisitor(isolate), old_obj_(obj) { |
+ explicit StoreBufferUpdateVisitor(Thread* thread, RawObject* obj) : |
+ ObjectPointerVisitor(thread->isolate()), thread_(thread), old_obj_(obj) { |
ASSERT(old_obj_->IsOldObject()); |
} |
@@ -1728,7 +1728,7 @@ class StoreBufferUpdateVisitor : public ObjectPointerVisitor { |
RawObject* raw_obj = *curr; |
if (raw_obj->IsHeapObject() && raw_obj->IsNewObject()) { |
old_obj_->SetRememberedBit(); |
- isolate()->store_buffer()->AddObject(old_obj_); |
+ thread_->StoreBufferAddObject(old_obj_); |
// Remembered this object. There is no need to continue searching. |
return; |
} |
@@ -1736,6 +1736,7 @@ class StoreBufferUpdateVisitor : public ObjectPointerVisitor { |
} |
private: |
+ Thread* thread_; |
RawObject* old_obj_; |
DISALLOW_COPY_AND_ASSIGN(StoreBufferUpdateVisitor); |
@@ -1777,7 +1778,7 @@ RawObject* Object::Clone(const Object& orig, Heap::Space space) { |
// Old original doesn't need to be remembered, so neither does the clone. |
return raw_clone; |
} |
- StoreBufferUpdateVisitor visitor(Isolate::Current(), raw_clone); |
+ StoreBufferUpdateVisitor visitor(Thread::Current(), raw_clone); |
raw_clone->VisitPointers(&visitor); |
return raw_clone; |
} |