Fix bit packing of StyleRareInheritedData on Windows
authortony@chromium.org <tony@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 14 Jun 2012 22:33:20 +0000 (22:33 +0000)
committertony@chromium.org <tony@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 14 Jun 2012 22:33:20 +0000 (22:33 +0000)
https://bugs.webkit.org/show_bug.cgi?id=89112

Reviewed by Ryosuke Niwa.

On my machine (64 bit Chromium Linux), StyleRareInheritedData is 168 bytes.

No new tests, added a compile assert to ensure correctness going forward.

* rendering/style/StyleRareInheritedData.cpp:
(SameSizeAsStyleRareInheritedData):
(WebCore):
* rendering/style/StyleRareInheritedData.h:
(StyleRareInheritedData):

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

Source/WebCore/ChangeLog
Source/WebCore/rendering/style/StyleRareInheritedData.cpp
Source/WebCore/rendering/style/StyleRareInheritedData.h

index 917a5a9..f397a44 100644 (file)
@@ -1,3 +1,20 @@
+2012-06-14  Tony Chang  <tony@chromium.org>
+
+        Fix bit packing of StyleRareInheritedData on Windows
+        https://bugs.webkit.org/show_bug.cgi?id=89112
+
+        Reviewed by Ryosuke Niwa.
+
+        On my machine (64 bit Chromium Linux), StyleRareInheritedData is 168 bytes.
+
+        No new tests, added a compile assert to ensure correctness going forward.
+
+        * rendering/style/StyleRareInheritedData.cpp:
+        (SameSizeAsStyleRareInheritedData):
+        (WebCore):
+        * rendering/style/StyleRareInheritedData.h:
+        (StyleRareInheritedData):
+
 2012-06-14  Andreas Kling  <kling@webkit.org>
 
         Crashes below IconDatabase::performPendingRetainAndReleaseOperations().
index ca652d6..35a52e5 100644 (file)
 
 namespace WebCore {
 
+struct SameSizeAsStyleRareInheritedData : public RefCounted<SameSizeAsStyleRareInheritedData> {
+    Color firstColor;
+    float firstFloat;
+    Color colors[5];
+    void* ownPtrs[1];
+    AtomicString atomicStrings[5];
+    void* refPtrs[2];
+    Length lengths[1];
+    float secondFloat;
+    unsigned m_bitfields[2];
+    short pagedMediaShorts[2];
+    unsigned unsigneds[1];
+    short hyphenationShorts[3];
+
+#if ENABLE(CSS_IMAGE_RESOLUTION)
+    float imageResolutionFloats;
+#endif
+
+#if ENABLE(TOUCH_EVENTS)
+    Color touchColors;
+#endif
+
+#if ENABLE(CSS_VARIABLES)
+    void* variableDataRefs[1];
+#endif
+};
+
+COMPILE_ASSERT(sizeof(StyleRareInheritedData) == sizeof(SameSizeAsStyleRareInheritedData), StyleRareInheritedData_should_bit_pack);
+
 StyleRareInheritedData::StyleRareInheritedData()
     : textStrokeWidth(RenderStyle::initialTextStrokeWidth())
     , indent(RenderStyle::initialTextIndent())
index 341f3d9..b329e8b 100644 (file)
@@ -84,7 +84,7 @@ public:
     unsigned wordWrap : 1; // EWordWrap 
     unsigned nbspMode : 1; // ENBSPMode
     unsigned khtmlLineBreak : 1; // EKHTMLLineBreak
-    bool textSizeAdjust : 1; // An Apple extension.
+    unsigned textSizeAdjust : 1; // An Apple extension.
     unsigned resize : 2; // EResize
     unsigned userSelect : 1;  // EUserSelect
     unsigned colorSpace : 1; // ColorSpace