Title: [133021] trunk/Source/WebCore
Revision
133021
Author
[email protected]
Date
2012-10-31 06:55:20 -0700 (Wed, 31 Oct 2012)

Log Message

Remove stray calls to mutableAttributeData()
https://bugs.webkit.org/show_bug.cgi?id=100849

Reviewed by Andreas Kling.

Changing the cached class attribute value does not require mutable attribute data.

* dom/Element.cpp:
(WebCore::Element::classAttributeChanged):
* dom/ElementAttributeData.h:
(WebCore::ElementAttributeData::clearClass):
        
    Make const like setClass().

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (133020 => 133021)


--- trunk/Source/WebCore/ChangeLog	2012-10-31 13:49:01 UTC (rev 133020)
+++ trunk/Source/WebCore/ChangeLog	2012-10-31 13:55:20 UTC (rev 133021)
@@ -1,3 +1,19 @@
+2012-10-31  Antti Koivisto  <[email protected]>
+
+        Remove stray calls to mutableAttributeData()
+        https://bugs.webkit.org/show_bug.cgi?id=100849
+
+        Reviewed by Andreas Kling.
+
+        Changing the cached class attribute value does not require mutable attribute data.
+
+        * dom/Element.cpp:
+        (WebCore::Element::classAttributeChanged):
+        * dom/ElementAttributeData.h:
+        (WebCore::ElementAttributeData::clearClass):
+        
+            Make const like setClass().
+
 2012-10-31  Mike West  <[email protected]>
 
         X-Frame-Options console message should be associated with a request.

Modified: trunk/Source/WebCore/dom/Element.cpp (133020 => 133021)


--- trunk/Source/WebCore/dom/Element.cpp	2012-10-31 13:49:01 UTC (rev 133020)
+++ trunk/Source/WebCore/dom/Element.cpp	2012-10-31 13:55:20 UTC (rev 133021)
@@ -787,14 +787,14 @@
         SpaceSplitString oldClasses = attributeData->classNames();
         attributeData->setClass(newClassString, shouldFoldCase);
         if (shouldInvalidateStyle)
-            collectAddedAndRemovedClasses(addedAndRemovedClasses, oldClasses, mutableAttributeData()->classNames());
-    } else if (attributeData()) {
+            collectAddedAndRemovedClasses(addedAndRemovedClasses, oldClasses, attributeData->classNames());
+    } else if (const ElementAttributeData* attributeData = this->attributeData()) {
         if (shouldInvalidateStyle) {
-            const SpaceSplitString& oldClasses = attributeData()->classNames();
+            const SpaceSplitString& oldClasses = attributeData->classNames();
             for (unsigned i = 0; i < oldClasses.size(); ++i)
                 addedAndRemovedClasses.append(oldClasses[i]);
         }
-        mutableAttributeData()->clearClass();
+        attributeData->clearClass();
     }
 
     if (DOMTokenList* classList = optionalClassList())
@@ -805,7 +805,7 @@
     for (unsigned i = 0; i < addedAndRemovedClasses.size(); ++i) {
         if (document()->styleResolverIfExists()->hasSelectorForClass(addedAndRemovedClasses[i])) {
             setNeedsStyleRecalc();
-            break;
+            return;
         }
     }
 }

Modified: trunk/Source/WebCore/dom/ElementAttributeData.h (133020 => 133021)


--- trunk/Source/WebCore/dom/ElementAttributeData.h	2012-10-31 13:49:01 UTC (rev 133020)
+++ trunk/Source/WebCore/dom/ElementAttributeData.h	2012-10-31 13:55:20 UTC (rev 133021)
@@ -48,7 +48,7 @@
     // the appropriate subclass type.
     void deref();
 
-    void clearClass() { m_classNames.clear(); }
+    void clearClass() const { m_classNames.clear(); }
     void setClass(const AtomicString& className, bool shouldFoldCase) const { m_classNames.set(className, shouldFoldCase); }
     const SpaceSplitString& classNames() const { return m_classNames; }
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to