Reviewers: Vyacheslav Egorov,

Message:
As discussed on Friday. Please take a quick look.

Description:
Profiler experiments: be more careful when accessing TypeFeedbackInfo


Please review this at https://chromiumcodereview.appspot.com/9471008/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files:
  M src/ic.cc


Index: src/ic.cc
diff --git a/src/ic.cc b/src/ic.cc
index c4c204bbf46fdc597e5b43e55fd93b454761c11a..9bea13b9484d769cfaf3165a3d8ef38dd2cd325c 100644
--- a/src/ic.cc
+++ b/src/ic.cc
@@ -315,10 +315,13 @@ void IC::PostPatching(Address address, Code* target, Code* old_target) {
       if (delta != 0) {
         Code* host = target->GetHeap()->isolate()->
             inner_pointer_to_code_cache()->GetCacheEntry(address)->code;
-        TypeFeedbackInfo* info =
-            TypeFeedbackInfo::cast(host->type_feedback_info());
-        info->set_ic_with_typeinfo_count(
-            info->ic_with_typeinfo_count() + delta);
+        // Not all Code objects have TypeFeedbackInfo.
+        if (host->type_feedback_info()->IsTypeFeedbackInfo()) {
+          TypeFeedbackInfo* info =
+              TypeFeedbackInfo::cast(host->type_feedback_info());
+          info->set_ic_with_typeinfo_count(
+              info->ic_with_typeinfo_count() + delta);
+        }
       }
     }
   }


--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to