Title: [112776] trunk/Source/WebCore
Revision
112776
Author
rn...@webkit.org
Date
2012-03-30 22:16:34 -0700 (Fri, 30 Mar 2012)

Log Message

Add a compile assert for the size of RenderText
https://bugs.webkit.org/show_bug.cgi?id=82780

Reviewed by Dirk Pranke.

Added an assertion. Also moved m_maxWidth, m_beginMinWidth, and m_endMinWidth
to right beneath m_minWidth so that gcc on GTK+ can pack floats properly.

* rendering/RenderText.cpp:
(SameSizeAsRenderText):
(WebCore):
* rendering/RenderText.h:
(RenderText):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (112775 => 112776)


--- trunk/Source/WebCore/ChangeLog	2012-03-31 05:16:28 UTC (rev 112775)
+++ trunk/Source/WebCore/ChangeLog	2012-03-31 05:16:34 UTC (rev 112776)
@@ -1,5 +1,21 @@
 2012-03-30  Ryosuke Niwa  <rn...@webkit.org>
 
+        Add a compile assert for the size of RenderText
+        https://bugs.webkit.org/show_bug.cgi?id=82780
+
+        Reviewed by Dirk Pranke.
+
+        Added an assertion. Also moved m_maxWidth, m_beginMinWidth, and m_endMinWidth
+        to right beneath m_minWidth so that gcc on GTK+ can pack floats properly.
+
+        * rendering/RenderText.cpp:
+        (SameSizeAsRenderText):
+        (WebCore):
+        * rendering/RenderText.h:
+        (RenderText):
+
+2012-03-30  Ryosuke Niwa  <rn...@webkit.org>
+
         Add a compile assert for the size of ScrollableArea
         https://bugs.webkit.org/show_bug.cgi?id=82822
 

Modified: trunk/Source/WebCore/rendering/RenderText.cpp (112775 => 112776)


--- trunk/Source/WebCore/rendering/RenderText.cpp	2012-03-31 05:16:28 UTC (rev 112775)
+++ trunk/Source/WebCore/rendering/RenderText.cpp	2012-03-31 05:16:34 UTC (rev 112776)
@@ -53,6 +53,15 @@
 
 namespace WebCore {
 
+class SameSizeAsRenderText : public RenderObject {
+    float widths[4];
+    String text;
+    void* pointers[2];
+    uint32_t bitfields : 16;
+};
+
+COMPILE_ASSERT(sizeof(RenderText) == sizeof(SameSizeAsRenderText), RenderText_should_stay_small);
+
 class SecureTextTimer;
 typedef HashMap<RenderText*, SecureTextTimer*> SecureTextTimerMap;
 static SecureTextTimerMap* gSecureTextTimers = 0;
@@ -127,12 +136,12 @@
 RenderText::RenderText(Node* node, PassRefPtr<StringImpl> str)
      : RenderObject(node)
      , m_minWidth(-1)
+     , m_maxWidth(-1)
+     , m_beginMinWidth(0)
+     , m_endMinWidth(0)
      , m_text(str)
      , m_firstTextBox(0)
      , m_lastTextBox(0)
-     , m_maxWidth(-1)
-     , m_beginMinWidth(0)
-     , m_endMinWidth(0)
      , m_hasTab(false)
      , m_linesDirty(false)
      , m_containsReversedText(false)

Modified: trunk/Source/WebCore/rendering/RenderText.h (112775 => 112776)


--- trunk/Source/WebCore/rendering/RenderText.h	2012-03-31 05:16:28 UTC (rev 112775)
+++ trunk/Source/WebCore/rendering/RenderText.h	2012-03-31 05:16:34 UTC (rev 112776)
@@ -166,16 +166,15 @@
     void secureText(UChar mask);
 
     float m_minWidth; // here to minimize padding in 64-bit.
+    float m_maxWidth;
+    float m_beginMinWidth;
+    float m_endMinWidth;
 
     String m_text;
 
     InlineTextBox* m_firstTextBox;
     InlineTextBox* m_lastTextBox;
 
-    float m_maxWidth;
-    float m_beginMinWidth;
-    float m_endMinWidth;
-
     bool m_hasBreakableChar : 1; // Whether or not we can be broken into multiple lines.
     bool m_hasBreak : 1; // Whether or not we have a hard break (e.g., <pre> with '\n').
     bool m_hasTab : 1; // Whether or not we have a variable width tab character (e.g., <pre> with '\t').
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to