Profiler experiments: be more careful when accessing TypeFeedbackInfo
authorjkummerow@chromium.org <jkummerow@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Mon, 27 Feb 2012 08:08:14 +0000 (08:08 +0000)
committerjkummerow@chromium.org <jkummerow@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Mon, 27 Feb 2012 08:08:14 +0000 (08:08 +0000)
Review URL: https://chromiumcodereview.appspot.com/9471008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10835 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/ic.cc

index c4c204bbf46fdc597e5b43e55fd93b454761c11a..9bea13b9484d769cfaf3165a3d8ef38dd2cd325c 100644 (file)
--- 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);
+        }
       }
     }
   }