Chromium Code Reviews| Index: src/objects-debug.cc |
| diff --git a/src/objects-debug.cc b/src/objects-debug.cc |
| index 3716df1e87cf6069dce0ab83d7564aa150b02d97..ba122bdde43d76e7230c04659ac286cdcda73d02 100644 |
| --- a/src/objects-debug.cc |
| +++ b/src/objects-debug.cc |
| @@ -330,10 +330,13 @@ void JSObject::JSObjectVerify() { |
| } |
| } |
| - // TODO(hpayer): deal gracefully with partially constructed JSObjects, when |
| - // allocation folding is turned off. |
| - if (reinterpret_cast<Map*>(elements()) != |
| - GetHeap()->one_pointer_filler_map()) { |
| + if ((!FLAG_use_gvn || !FLAG_use_allocation_folding) && |
| + (reinterpret_cast<Map*>(elements()) == |
| + GetHeap()->one_pointer_filler_map())) { |
| + // A GC was caused while constructing this object. This can just happen when |
| + // allocation folding is turned off. The elements pointer may point to a |
|
mvstanton
2013/09/13 09:57:13
cool but can you reverse the if, I don't really li
Hannes Payer (out of office)
2013/09/13 11:30:27
Done.
|
| + // filler map in that case. |
| + } else { |
| CHECK_EQ((map()->has_fast_smi_or_object_elements() || |
| (elements() == GetHeap()->empty_fixed_array())), |
| (elements()->map() == GetHeap()->fixed_array_map() || |
| @@ -683,10 +686,13 @@ void Code::VerifyEmbeddedMapsDependency() { |
| void JSArray::JSArrayVerify() { |
| JSObjectVerify(); |
| CHECK(length()->IsNumber() || length()->IsUndefined()); |
| - // TODO(hpayer): deal gracefully with partially constructed JSObjects, when |
| - // allocation folding is turned off. |
| - if (reinterpret_cast<Map*>(elements()) != |
| - GetHeap()->one_pointer_filler_map()) { |
| + if ((!FLAG_use_gvn || !FLAG_use_allocation_folding) && |
| + (reinterpret_cast<Map*>(elements()) == |
| + GetHeap()->one_pointer_filler_map())) { |
| + // A GC was caused while constructing this array. This can just happen when |
| + // allocation folding is turned off. The elements pointer may point to a |
|
mvstanton
2013/09/13 09:57:13
same thing.
Hannes Payer (out of office)
2013/09/13 11:30:27
Done.
|
| + // filler map in that case. |
| + } else { |
| CHECK(elements()->IsUndefined() || |
| elements()->IsFixedArray() || |
| elements()->IsFixedDoubleArray()); |