Chromium Code Reviews| Index: src/objects.cc |
| diff --git a/src/objects.cc b/src/objects.cc |
| index cb8489f6d29f47dcb9ac75b6d985e9bd6a538da0..d4612e7de8abf572401714ce221922e441df137a 100644 |
| --- a/src/objects.cc |
| +++ b/src/objects.cc |
| @@ -1301,7 +1301,8 @@ bool String::MakeExternal(v8::String::ExternalStringResource* resource) { |
| // Fill the remainder of the string with dead wood. |
| int new_size = this->Size(); // Byte size of the external String object. |
| heap->CreateFillerObjectAt(this->address() + new_size, size - new_size); |
| - if (Marking::IsBlack(Marking::MarkBitFrom(this))) { |
| + if (heap->incremental_marking()->IsMarking() && |
| + Marking::IsBlack(Marking::MarkBitFrom(this))) { |
| MemoryChunk::IncrementLiveBytesFromMutator(this->address(), |
| new_size - size); |
| } |
| @@ -1360,7 +1361,8 @@ bool String::MakeExternal(v8::String::ExternalAsciiStringResource* resource) { |
| // Fill the remainder of the string with dead wood. |
| int new_size = this->Size(); // Byte size of the external String object. |
| heap->CreateFillerObjectAt(this->address() + new_size, size - new_size); |
| - if (Marking::IsBlack(Marking::MarkBitFrom(this))) { |
| + if (heap->incremental_marking()->IsMarking() && |
| + Marking::IsBlack(Marking::MarkBitFrom(this))) { |
| MemoryChunk::IncrementLiveBytesFromMutator(this->address(), |
| new_size - size); |
| } |
| @@ -2301,7 +2303,8 @@ static void RightTrimFixedArray(Heap* heap, FixedArray* elms, int to_trim) { |
| elms->set_length(len - to_trim); |
| // Maintain marking consistency for IncrementalMarking. |
| - if (Marking::IsBlack(Marking::MarkBitFrom(elms))) { |
| + if (heap->incremental_marking()->IsMarking() && |
| + Marking::IsBlack(Marking::MarkBitFrom(elms))) { |
|
Michael Starzinger
2014/03/19 09:30:35
As discussed offline: I am not sure distinguishing
Hannes Payer (out of office)
2014/03/19 11:27:51
Done.
|
| if (trim_mode == FROM_GC) { |
| MemoryChunk::IncrementLiveBytesFromGC(elms->address(), -size_delta); |
| } else { |
| @@ -4643,9 +4646,11 @@ void JSObject::NormalizeProperties(Handle<JSObject> object, |
| int new_instance_size = new_map->instance_size(); |
| int instance_size_delta = map->instance_size() - new_instance_size; |
| ASSERT(instance_size_delta >= 0); |
| - isolate->heap()->CreateFillerObjectAt(object->address() + new_instance_size, |
| - instance_size_delta); |
| - if (Marking::IsBlack(Marking::MarkBitFrom(*object))) { |
| + Heap* heap = isolate->heap(); |
| + heap->CreateFillerObjectAt(object->address() + new_instance_size, |
| + instance_size_delta); |
| + if (heap->incremental_marking()->IsMarking() && |
| + Marking::IsBlack(Marking::MarkBitFrom(*object))) { |
| MemoryChunk::IncrementLiveBytesFromMutator(object->address(), |
| -instance_size_delta); |
| } |
| @@ -9217,7 +9222,8 @@ Handle<String> SeqString::Truncate(Handle<SeqString> string, int new_length) { |
| // that are a multiple of pointer size. |
| heap->CreateFillerObjectAt(start_of_string + new_size, delta); |
| } |
| - if (Marking::IsBlack(Marking::MarkBitFrom(start_of_string))) { |
| + if (heap->incremental_marking()->IsMarking() && |
| + Marking::IsBlack(Marking::MarkBitFrom(start_of_string))) { |
| MemoryChunk::IncrementLiveBytesFromMutator(start_of_string, -delta); |
| } |