To save memory in the common case, move the margin***Collapse variables into the...
authorhyatt <hyatt@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 25 Aug 2004 20:01:00 +0000 (20:01 +0000)
committerhyatt <hyatt@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 25 Aug 2004 20:01:00 +0000 (20:01 +0000)
bloating the surround struct.

        * khtml/rendering/render_style.cpp:
        (StyleSurroundData::StyleSurroundData):
        (StyleSurroundData::operator==):
        (marginBottomCollapse):
        (StyleCSS3NonInheritedData::operator==):
        (RenderStyle::diff):
        * khtml/rendering/render_style.h:
        (khtml::RenderStyle::marginTopCollapse):
        (khtml::RenderStyle::marginBottomCollapse):
        (khtml::RenderStyle::setMarginTopCollapse):
        (khtml::RenderStyle::setMarginBottomCollapse):

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

WebCore/ChangeLog-2005-08-23
WebCore/khtml/rendering/render_style.cpp
WebCore/khtml/rendering/render_style.h

index c235c46ab16691a1ab6d9bb7ab76d444382e2722..0b57a5fe71a165c8f29f992d19feb0ce59fd83d0 100644 (file)
@@ -1,3 +1,20 @@
+2004-08-25  David Hyatt  <hyatt@apple.com>
+
+       To save memory in the common case, move the margin***Collapse variables into the CSS3 struct instead of
+       bloating the surround struct.
+       
+        * khtml/rendering/render_style.cpp:
+        (StyleSurroundData::StyleSurroundData):
+        (StyleSurroundData::operator==):
+        (marginBottomCollapse):
+        (StyleCSS3NonInheritedData::operator==):
+        (RenderStyle::diff):
+        * khtml/rendering/render_style.h:
+        (khtml::RenderStyle::marginTopCollapse):
+        (khtml::RenderStyle::marginBottomCollapse):
+        (khtml::RenderStyle::setMarginTopCollapse):
+        (khtml::RenderStyle::setMarginBottomCollapse):
+
 2004-08-25  David Hyatt  <hyatt@apple.com>
 
        Fix the "extra space in TypePad blogs" Emerson problem by adding the ability to collapse away margins.
index 795ac32506c77577f33a009bc88bd55851be06f7..888b7b086673c5c3b2cf161a22ff69a439290985 100644 (file)
@@ -35,22 +35,21 @@ using DOM::DOMStringImpl;
 using DOM::DOMString;
 
 StyleSurroundData::StyleSurroundData()
-    : margin( Fixed ), padding( Variable ), marginTopCollapse(MCOLLAPSE), marginBottomCollapse(MCOLLAPSE)
+    : margin( Fixed ), padding( Variable )
 {
 }
 
 StyleSurroundData::StyleSurroundData(const StyleSurroundData& o )
     : Shared<StyleSurroundData>(),
       offset( o.offset ), margin( o.margin ), padding( o.padding ),
-      border( o.border ), marginTopCollapse(o.marginTopCollapse), marginBottomCollapse(o.marginBottomCollapse)
+      border( o.border )
 {
 }
 
 bool StyleSurroundData::operator==(const StyleSurroundData& o) const
 {
     return offset==o.offset && margin==o.margin &&
-       padding==o.padding && border==o.border && marginTopCollapse == o.marginTopCollapse &&
-        marginBottomCollapse == o.marginBottomCollapse;
+       padding==o.padding && border==o.border;
 }
 
 StyleBoxData::StyleBoxData()
@@ -186,7 +185,9 @@ lineClamp(RenderStyle::initialLineClamp()),
 opacity(RenderStyle::initialOpacity()),
 userDrag(RenderStyle::initialUserDrag()),
 userSelect(RenderStyle::initialUserSelect()),
-textOverflow(RenderStyle::initialTextOverflow())
+textOverflow(RenderStyle::initialTextOverflow()),
+marginTopCollapse(MCOLLAPSE),
+marginBottomCollapse(MCOLLAPSE)
 #ifndef KHTML_NO_XBL
 , bindingURI(0)
 #endif
@@ -199,7 +200,8 @@ StyleCSS3NonInheritedData::StyleCSS3NonInheritedData(const StyleCSS3NonInherited
 lineClamp(o.lineClamp),
 #endif
 opacity(o.opacity), flexibleBox(o.flexibleBox), marquee(o.marquee),
-userDrag(o.userDrag), userSelect(o.userSelect), textOverflow(o.textOverflow)
+userDrag(o.userDrag), userSelect(o.userSelect), textOverflow(o.textOverflow),
+marginTopCollapse(o.marginTopCollapse), marginBottomCollapse(o.marginBottomCollapse)
 {
 #ifndef KHTML_NO_XBL
     bindingURI = o.bindingURI ? o.bindingURI->copy() : 0;
@@ -228,7 +230,8 @@ bool StyleCSS3NonInheritedData::bindingsEquivalent(const StyleCSS3NonInheritedDa
 bool StyleCSS3NonInheritedData::operator==(const StyleCSS3NonInheritedData& o) const
 {
     return opacity == o.opacity && flexibleBox == o.flexibleBox && marquee == o.marquee &&
-           userDrag == o.userDrag && userSelect == o.userSelect && textOverflow == o.textOverflow
+           userDrag == o.userDrag && userSelect == o.userSelect && textOverflow == o.textOverflow &&
+           marginTopCollapse == o.marginTopCollapse && marginBottomCollapse == o.marginBottomCollapse
 #ifndef KHTML_NO_XBL
            && bindingsEquivalent(o)
 #endif
@@ -541,8 +544,8 @@ RenderStyle::Diff RenderStyle::diff( const RenderStyle *other ) const
     if ( *box.get() != *other->box.get() ||
          !(surround->margin == other->surround->margin) ||
          !(surround->padding == other->surround->padding) ||
-         surround->marginTopCollapse != other->surround->marginTopCollapse ||
-         surround->marginBottomCollapse != other->surround->marginBottomCollapse ||
+         css3NonInheritedData->marginTopCollapse != other->css3NonInheritedData->marginTopCollapse ||
+         css3NonInheritedData->marginBottomCollapse != other->css3NonInheritedData->marginBottomCollapse ||
          *css3NonInheritedData->flexibleBox.get() != *other->css3NonInheritedData->flexibleBox.get() ||
 #if APPLE_CHANGES
          (css3NonInheritedData->lineClamp != other->css3NonInheritedData->lineClamp) ||
index 8b849dec4940d603d83e393ea3c134fa1ffe7aa6..ff7f9e627943f2ab1ba0cb6268d387d6ee9c81a8 100644 (file)
@@ -301,8 +301,6 @@ public:
     LengthBox margin;
     LengthBox padding;
     BorderData border;
-    EMarginCollapse marginTopCollapse : 2;
-    EMarginCollapse marginBottomCollapse : 2;
 };
 
 
@@ -569,6 +567,8 @@ public:
     EUserDrag userDrag : 2; // Whether or not a drag can be initiated by this element.
     EUserSelect userSelect : 2;  // Whether or not the element is selectable.
     bool textOverflow : 1; // Whether or not lines that spill out should be truncated with "..."
+    EMarginCollapse marginTopCollapse : 2;
+    EMarginCollapse marginBottomCollapse : 2;
 
 #ifndef KHTML_NO_XBL
     BindingURI* bindingURI; // The XBL binding URI list.
@@ -1112,8 +1112,8 @@ public:
     EUserDrag userDrag() const { return css3NonInheritedData->userDrag; }
     EUserSelect userSelect() const { return css3NonInheritedData->userSelect; }
     bool textOverflow() const { return css3NonInheritedData->textOverflow; }
-    EMarginCollapse marginTopCollapse() const { return surround->marginTopCollapse; }
-    EMarginCollapse marginBottomCollapse() const { return surround->marginBottomCollapse; }
+    EMarginCollapse marginTopCollapse() const { return css3NonInheritedData->marginTopCollapse; }
+    EMarginCollapse marginBottomCollapse() const { return css3NonInheritedData->marginBottomCollapse; }
     // End CSS3 Getters
 
 #if APPLE_CHANGES
@@ -1294,8 +1294,8 @@ public:
     void setUserDrag(EUserDrag d) { SET_VAR(css3NonInheritedData, userDrag, d); }
     void setUserSelect(EUserSelect s) { SET_VAR(css3NonInheritedData, userSelect, s); }
     void setTextOverflow(bool b) { SET_VAR(css3NonInheritedData, textOverflow, b); }
-    void setMarginTopCollapse(EMarginCollapse c) { SET_VAR(surround, marginTopCollapse, c); }
-    void setMarginBottomCollapse(EMarginCollapse c) { SET_VAR(surround, marginBottomCollapse, c); }
+    void setMarginTopCollapse(EMarginCollapse c) { SET_VAR(css3NonInheritedData, marginTopCollapse, c); }
+    void setMarginBottomCollapse(EMarginCollapse c) { SET_VAR(css3NonInheritedData, marginBottomCollapse, c); }
     // End CSS3 Setters
    
 #if APPLE_CHANGES