Fix the lldb WebCoreLayoutUnitProvider to not dynamically look up the LayoutUnit...
authorsimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 22 Jan 2016 06:44:52 +0000 (06:44 +0000)
committersimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 22 Jan 2016 06:44:52 +0000 (06:44 +0000)
https://bugs.webkit.org/show_bug.cgi?id=153334

Reviewed by Zalan Bujtas.

Evaluating expressions in the LayoutUnit summary provider seems to cause
re-entrancy problems in lldb python bindings, so just hardcode the LayoutUnit
denominator to 64.

* lldb/lldb_webkit.py:
(WebCoreLayoutUnitProvider.to_string):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@195444 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Tools/ChangeLog
Tools/lldb/lldb_webkit.py

index 206a167..5518af9 100644 (file)
@@ -1,3 +1,17 @@
+2016-01-21  Simon Fraser  <simon.fraser@apple.com>
+
+        Fix the lldb WebCoreLayoutUnitProvider to not dynamically look up the LayoutUnit denominator
+        https://bugs.webkit.org/show_bug.cgi?id=153334
+
+        Reviewed by Zalan Bujtas.
+        
+        Evaluating expressions in the LayoutUnit summary provider seems to cause
+        re-entrancy problems in lldb python bindings, so just hardcode the LayoutUnit
+        denominator to 64.
+
+        * lldb/lldb_webkit.py:
+        (WebCoreLayoutUnitProvider.to_string):
+
 2016-01-21  Filip Pizlo  <fpizlo@apple.com>
 
         display-profiler-output should be able to display code blocks sorted by machine counts
index 46bdb2b..e5712a8 100644 (file)
@@ -277,11 +277,7 @@ class WebCoreLayoutUnitProvider:
 
     def to_string(self):
         layoutUnitValue = self.valobj.GetChildMemberWithName('m_value').GetValueAsSigned(0)
-        # figure out the layout unit denominator by checking infinite IntRect's value. It ensures that this function works even when subpixel is off.
-        infiniteWidth = self.valobj.GetFrame().EvaluateExpression('IntRect::infiniteRect()').GetChildMemberWithName('m_size').GetChildMemberWithName('m_width').GetValueAsSigned(0)
-        # denominator = maxint / current infinite width value
-        denominator = int(2147483647 / infiniteWidth) if infiniteWidth else 64
-        return "%gpx (%d)" % (float(layoutUnitValue) / denominator, layoutUnitValue)
+        return "%gpx (%d)" % (float(layoutUnitValue) / 64, layoutUnitValue)
 
 
 class WebCoreLayoutSizeProvider: