Title: [111013] trunk/Source/_javascript_Core
Revision
111013
Author
msab...@apple.com
Date
2012-03-16 09:26:26 -0700 (Fri, 16 Mar 2012)

Log Message

Improve diagnostic benefit of JSGlobalData::m_isInitializingObject
https://bugs.webkit.org/show_bug.cgi?id=81244

Rubber stamped by Filip Pizlo.

Changed type and name of JSGlobalData::m_isInitializingObject to
ClassInfo* and m_initializingObjectClass.
Changed JSGlobalData::setInitializingObject to
JSGlobalData::setInitializingObjectClass.  This pointer can be used within 
the debugger to determine what type of object is being initialized.
        
* runtime/JSCell.h:
(JSC::JSCell::finishCreation):
(JSC::allocateCell):
* runtime/JSGlobalData.cpp:
(JSC::JSGlobalData::JSGlobalData):
* runtime/JSGlobalData.h:
(JSGlobalData):
(JSC::JSGlobalData::isInitializingObject):
(JSC::JSGlobalData::setInitializingObjectClass):
* runtime/Structure.h:
(JSC::JSCell::finishCreation):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (111012 => 111013)


--- trunk/Source/_javascript_Core/ChangeLog	2012-03-16 16:16:25 UTC (rev 111012)
+++ trunk/Source/_javascript_Core/ChangeLog	2012-03-16 16:26:26 UTC (rev 111013)
@@ -1,3 +1,28 @@
+2012-03-16  Michael Saboff  <msab...@apple.com>
+
+        Improve diagnostic benefit of JSGlobalData::m_isInitializingObject
+        https://bugs.webkit.org/show_bug.cgi?id=81244
+
+        Rubber stamped by Filip Pizlo.
+
+        Changed type and name of JSGlobalData::m_isInitializingObject to
+        ClassInfo* and m_initializingObjectClass.
+        Changed JSGlobalData::setInitializingObject to
+        JSGlobalData::setInitializingObjectClass.  This pointer can be used within 
+        the debugger to determine what type of object is being initialized.
+        
+        * runtime/JSCell.h:
+        (JSC::JSCell::finishCreation):
+        (JSC::allocateCell):
+        * runtime/JSGlobalData.cpp:
+        (JSC::JSGlobalData::JSGlobalData):
+        * runtime/JSGlobalData.h:
+        (JSGlobalData):
+        (JSC::JSGlobalData::isInitializingObject):
+        (JSC::JSGlobalData::setInitializingObjectClass):
+        * runtime/Structure.h:
+        (JSC::JSCell::finishCreation):
+
 2012-03-16  Mark Rowe  <mr...@apple.com>
 
         Build fix. Do not preserve owner and group information when installing the WTF headers.

Modified: trunk/Source/_javascript_Core/runtime/JSCell.h (111012 => 111013)


--- trunk/Source/_javascript_Core/runtime/JSCell.h	2012-03-16 16:16:25 UTC (rev 111012)
+++ trunk/Source/_javascript_Core/runtime/JSCell.h	2012-03-16 16:26:26 UTC (rev 111013)
@@ -178,7 +178,7 @@
     {
 #if ENABLE(GC_VALIDATION)
         ASSERT(globalData.isInitializingObject());
-        globalData.setInitializingObject(false);
+        globalData.setInitializingObjectClass(0);
 #else
         UNUSED_PARAM(globalData);
 #endif
@@ -330,7 +330,7 @@
 #if ENABLE(GC_VALIDATION)
         ASSERT(sizeof(T) == T::s_info.cellSize);
         ASSERT(!heap.globalData()->isInitializingObject());
-        heap.globalData()->setInitializingObject(true);
+        heap.globalData()->setInitializingObjectClass(&T::s_info);
 #endif
         JSCell* result = 0;
         if (NeedsDestructor<T>::value)

Modified: trunk/Source/_javascript_Core/runtime/JSGlobalData.cpp (111012 => 111013)


--- trunk/Source/_javascript_Core/runtime/JSGlobalData.cpp	2012-03-16 16:16:25 UTC (rev 111012)
+++ trunk/Source/_javascript_Core/runtime/JSGlobalData.cpp	2012-03-16 16:26:26 UTC (rev 111013)
@@ -161,7 +161,7 @@
     , m_timeoutCount(512)
 #endif
 #if ENABLE(GC_VALIDATION)
-    , m_isInitializingObject(false)
+    , m_initializingObjectClass(0)
 #endif
     , m_inDefineOwnProperty(false)
 {

Modified: trunk/Source/_javascript_Core/runtime/JSGlobalData.h (111012 => 111013)


--- trunk/Source/_javascript_Core/runtime/JSGlobalData.h	2012-03-16 16:16:25 UTC (rev 111012)
+++ trunk/Source/_javascript_Core/runtime/JSGlobalData.h	2012-03-16 16:26:26 UTC (rev 111013)
@@ -337,7 +337,7 @@
 
 #if ENABLE(GC_VALIDATION)
         bool isInitializingObject() const; 
-        void setInitializingObject(bool);
+        void setInitializingObjectClass(const ClassInfo*);
 #endif
 
 #if CPU(X86) && ENABLE(JIT)
@@ -373,7 +373,7 @@
         bool m_canUseJIT;
 #endif
 #if ENABLE(GC_VALIDATION)
-        bool m_isInitializingObject;
+        const ClassInfo* m_initializingObjectClass;
 #endif
         bool m_inDefineOwnProperty;
 
@@ -391,12 +391,12 @@
 #if ENABLE(GC_VALIDATION)
     inline bool JSGlobalData::isInitializingObject() const
     {
-        return m_isInitializingObject;
+        return !!m_initializingObjectClass;
     }
 
-    inline void JSGlobalData::setInitializingObject(bool initializingObject)
+    inline void JSGlobalData::setInitializingObjectClass(const ClassInfo* initializingObjectClass)
     {
-        m_isInitializingObject = initializingObject;
+        m_initializingObjectClass = initializingObjectClass;
     }
 #endif
 

Modified: trunk/Source/_javascript_Core/runtime/Structure.h (111012 => 111013)


--- trunk/Source/_javascript_Core/runtime/Structure.h	2012-03-16 16:16:25 UTC (rev 111012)
+++ trunk/Source/_javascript_Core/runtime/Structure.h	2012-03-16 16:26:26 UTC (rev 111013)
@@ -406,7 +406,7 @@
     {
 #if ENABLE(GC_VALIDATION)
         ASSERT(globalData.isInitializingObject());
-        globalData.setInitializingObject(false);
+        globalData.setInitializingObjectClass(0);
         if (structure)
 #endif
             m_structure.setEarlyValue(globalData, this, structure);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to