From b26322d4c1b5cd6d91b7a961ccc5418fb7dff55d Mon Sep 17 00:00:00 2001 From: "bak@chromium.org" Date: Wed, 22 Oct 2008 09:47:20 +0000 Subject: [PATCH] - Applied FixedArray::WriteBarrierMode to NewArgumentsFast. Review URL: http://codereview.chromium.org/8052 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@551 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/heap.cc | 7 ++++--- src/runtime.cc | 6 ++++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/heap.cc b/src/heap.cc index 660d777..f389976 100644 --- a/src/heap.cc +++ b/src/heap.cc @@ -1779,13 +1779,13 @@ Object* Heap::CopyJSObject(JSObject* source) { FixedArray* properties = FixedArray::cast(source->properties()); // Update elements if necessary. if (elements->length()> 0) { - Object* elem = Heap::CopyFixedArray(elements); + Object* elem = CopyFixedArray(elements); if (elem->IsFailure()) return elem; JSObject::cast(clone)->set_elements(FixedArray::cast(elem)); } // Update properties if necessary. if (properties->length() > 0) { - Object* prop = Heap::CopyFixedArray(properties); + Object* prop = CopyFixedArray(properties); if (prop->IsFailure()) return prop; JSObject::cast(clone)->set_properties(FixedArray::cast(prop)); } @@ -2107,7 +2107,8 @@ Object* Heap::CopyFixedArray(FixedArray* src) { FixedArray* result = FixedArray::cast(obj); result->set_length(len); // Copy the content - for (int i = 0; i < len; i++) result->set(i, src->get(i)); + FixedArray::WriteBarrierMode mode = result->GetWriteBarrierMode(); + for (int i = 0; i < len; i++) result->set(i, src->get(i), mode); return result; } diff --git a/src/runtime.cc b/src/runtime.cc index ca94ef1..bfb68c2 100644 --- a/src/runtime.cc +++ b/src/runtime.cc @@ -3133,8 +3133,9 @@ static Object* Runtime_NewArguments(Arguments args) { if (result->IsFailure()) return result; FixedArray* array = FixedArray::cast(JSObject::cast(result)->elements()); ASSERT(array->length() == length); + FixedArray::WriteBarrierMode mode = array->GetWriteBarrierMode(); for (int i = 0; i < length; i++) { - array->set(i, frame->GetParameter(i)); + array->set(i, frame->GetParameter(i), mode); } return result; } @@ -4865,8 +4866,9 @@ static Handle GetArgumentsObject(JavaScriptFrame* frame, Handle arguments = Factory::NewArgumentsObject(function, length); FixedArray* array = FixedArray::cast(JSObject::cast(*arguments)->elements()); ASSERT(array->length() == length); + FixedArray::WriteBarrierMode mode = array->GetWriteBarrierMode(); for (int i = 0; i < length; i++) { - array->set(i, frame->GetParameter(i)); + array->set(i, frame->GetParameter(i), mode); } return arguments; } -- 2.7.4