Index: src/ic.cc |
diff --git a/src/ic.cc b/src/ic.cc |
index 5de1a2a4bce778f8bbc204e96280301a934229cc..9d62a0c1bdee62a24780eff7243ca386da29b018 100644 |
--- a/src/ic.cc |
+++ b/src/ic.cc |
@@ -320,13 +320,17 @@ void IC::PostPatching(Address address, Code* target, Code* old_target) { |
int delta = ComputeTypeInfoCountDelta(old_target->ic_state(), |
target->ic_state()); |
// Not all Code objects have TypeFeedbackInfo. |
- if (delta != 0 && host->type_feedback_info()->IsTypeFeedbackInfo()) { |
+ if (host->type_feedback_info()->IsTypeFeedbackInfo() && delta != 0) { |
TypeFeedbackInfo* info = |
TypeFeedbackInfo::cast(host->type_feedback_info()); |
- info->set_ic_with_type_info_count( |
- info->ic_with_type_info_count() + delta); |
+ info->change_ic_with_type_info_count(delta); |
} |
} |
+ if (host->type_feedback_info()->IsTypeFeedbackInfo()) { |
+ TypeFeedbackInfo* info = |
+ TypeFeedbackInfo::cast(host->type_feedback_info()); |
+ info->change_own_type_change_checksum(); |
+ } |
if (FLAG_watch_ic_patching) { |
host->set_profiler_ticks(0); |
Isolate::Current()->runtime_profiler()->NotifyICChanged(); |