Author: [EMAIL PROTECTED]
Date: Wed Oct 22 02:47:20 2008
New Revision: 551
Modified:
branches/bleeding_edge/src/heap.cc
branches/bleeding_edge/src/runtime.cc
Log:
- Applied FixedArray::WriteBarrierMode to NewArgumentsFast.
Review URL: http://codereview.chromium.org/8052
Modified: branches/bleeding_edge/src/heap.cc
==============================================================================
--- branches/bleeding_edge/src/heap.cc (original)
+++ branches/bleeding_edge/src/heap.cc Wed Oct 22 02:47:20 2008
@@ -1779,13 +1779,13 @@
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 @@
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;
}
Modified: branches/bleeding_edge/src/runtime.cc
==============================================================================
--- branches/bleeding_edge/src/runtime.cc (original)
+++ branches/bleeding_edge/src/runtime.cc Wed Oct 22 02:47:20 2008
@@ -3133,8 +3133,9 @@
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 @@
Handle<Object> 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;
}
--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---