Chromium Code Reviews| Index: src/type-feedback-vector.cc |
| diff --git a/src/type-feedback-vector.cc b/src/type-feedback-vector.cc |
| index 05f510e865128ddf65c7d936fc8ada6eec3bdef3..db7489391e2553bc33bc52f36a998087dcb2f38b 100644 |
| --- a/src/type-feedback-vector.cc |
| +++ b/src/type-feedback-vector.cc |
| @@ -279,11 +279,19 @@ void TypeFeedbackVector::ClearAllKeyedStoreICs(Isolate* isolate) { |
| int length = optimized_code_map->length(); |
| for (int i = SharedFunctionInfo::kEntriesStart; i < length; |
| i += SharedFunctionInfo::kEntryLength) { |
| - WeakCell* cell = WeakCell::cast( |
| - optimized_code_map->get(i + SharedFunctionInfo::kLiteralsOffset)); |
| - if (cell->value()->IsLiteralsArray()) { |
| - TypeFeedbackVector* vector = |
| - LiteralsArray::cast(cell->value())->feedback_vector(); |
| + Object* lits = |
| + optimized_code_map->get(i + SharedFunctionInfo::kLiteralsOffset); |
| + TypeFeedbackVector* vector = NULL; |
|
Michael Starzinger
2016/06/07 09:41:37
nit: s/NULL/nullptr/
mvstanton
2016/06/07 11:35:33
Done.
|
| + if (lits->IsWeakCell()) { |
| + WeakCell* cell = WeakCell::cast(lits); |
| + if (cell->value()->IsLiteralsArray()) { |
| + vector = LiteralsArray::cast(cell->value())->feedback_vector(); |
| + } |
| + } else { |
| + DCHECK(lits->IsLiteralsArray()); |
| + vector = LiteralsArray::cast(lits)->feedback_vector(); |
| + } |
| + if (vector != NULL) { |
|
Michael Starzinger
2016/06/07 09:41:37
nit: s/NULL/nullptr/
mvstanton
2016/06/07 11:35:33
Done.
|
| vector->ClearKeyedStoreICs(shared); |
| } |
| } |