- Applied FixedArray::WriteBarrierMode to NewArgumentsFast.
authorbak@chromium.org <bak@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 22 Oct 2008 09:47:20 +0000 (09:47 +0000)
committerbak@chromium.org <bak@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 22 Oct 2008 09:47:20 +0000 (09:47 +0000)
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
src/runtime.cc

index 660d777bd6b23408ee8205051c8df76ed90e7eff..f38997619ca1e1d1b025f2556e29efd1318a5615 100644 (file)
@@ -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;
 }
 
index ca94ef15f8850f50cddc0f4ca2e23f65caa0c446..bfb68c254445d1718e057140bddc961377e115b2 100644 (file)
@@ -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<Object> GetArgumentsObject(JavaScriptFrame* frame,
   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;
 }