Make Logger::SuspectReadEvent extract the class name from the object. This makes...
authordeanm@chromium.org <deanm@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Tue, 9 Dec 2008 09:19:02 +0000 (09:19 +0000)
committerdeanm@chromium.org <deanm@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Tue, 9 Dec 2008 09:19:02 +0000 (09:19 +0000)
Review URL: http://codereview.chromium.org/13655

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

src/ic.cc
src/log.cc
src/log.h

index c0b7624..2dc9742 100644 (file)
--- a/src/ic.cc
+++ b/src/ic.cc
@@ -514,11 +514,7 @@ Object* LoadIC::Load(State state, Handle<Object> object, Handle<String> name) {
     if (FLAG_strict || is_contextual()) {
       return ReferenceError("not_defined", name);
     }
-    String* class_name = object->IsJSObject()
-                         ? Handle<JSObject>::cast(object)->class_name()
-                         : Heap::empty_string();
-    LOG(SuspectReadEvent(*name, class_name));
-    USE(class_name);
+    LOG(SuspectReadEvent(*name, *object));
   }
 
   // Update inline cache and stub cache.
index d145480..4fa398c 100644 (file)
@@ -593,12 +593,15 @@ void Logger::ResourceEvent(const char* name, const char* tag) {
 }
 
 
-void Logger::SuspectReadEvent(String* name, String* obj) {
+void Logger::SuspectReadEvent(String* name, Object* obj) {
 #ifdef ENABLE_LOGGING_AND_PROFILING
   if (logfile_ == NULL || !FLAG_log_suspect) return;
+  String* class_name = obj->IsJSObject()
+                       ? JSObject::cast(obj)->class_name()
+                       : Heap::empty_string();
   ScopedLock sl(mutex_);
   fprintf(logfile_, "suspect-read,");
-  obj->PrintOn(logfile_);
+  class_name->PrintOn(logfile_);
   fprintf(logfile_, ",\"");
   name->PrintOn(logfile_);
   fprintf(logfile_, "\"\n");
index eb082da..89d3e8a 100644 (file)
--- a/src/log.h
+++ b/src/log.h
@@ -134,7 +134,7 @@ class Logger {
 
   // Emits an event that an undefined property was read from an
   // object.
-  static void SuspectReadEvent(String* name, String* obj);
+  static void SuspectReadEvent(String* name, Object* obj);
 
   // Emits an event when a message is put on or read from a debugging queue.
   // DebugTag lets us put a call-site specific label on the event.