Slap ALWAYS_INLINE on Element attribute lookup things.
authorakling@apple.com <akling@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 19 Apr 2014 20:40:39 +0000 (20:40 +0000)
committerakling@apple.com <akling@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 19 Apr 2014 20:40:39 +0000 (20:40 +0000)
<https://webkit.org/b/131892>

Most of the "inline" helpers for setting/getting attributes were not
actually getting inlined by the compiler, so let's make that happen.

Reviewed by Geoffrey Garen.

* dom/Element.cpp:
(WebCore::Element::synchronizeAttribute):
* dom/ElementData.h:
(WebCore::ElementData::findAttributeByName):
(WebCore::ElementData::findAttributeIndexByName):

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

Source/WebCore/ChangeLog
Source/WebCore/dom/Element.cpp
Source/WebCore/dom/ElementData.h

index 23de437..b6f693c 100644 (file)
@@ -1,3 +1,19 @@
+2014-04-19  Andreas Kling  <akling@apple.com>
+
+        Slap ALWAYS_INLINE on Element attribute lookup things.
+        <https://webkit.org/b/131892>
+
+        Most of the "inline" helpers for setting/getting attributes were not
+        actually getting inlined by the compiler, so let's make that happen.
+
+        Reviewed by Geoffrey Garen.
+
+        * dom/Element.cpp:
+        (WebCore::Element::synchronizeAttribute):
+        * dom/ElementData.h:
+        (WebCore::ElementData::findAttributeByName):
+        (WebCore::ElementData::findAttributeIndexByName):
+
 2014-04-19  Darin Adler  <darin@apple.com>
 
         Telephone number detection should respect its setting consistently
index acb246e..4f8f938 100644 (file)
@@ -377,7 +377,7 @@ void Element::synchronizeAllAttributes() const
     }
 }
 
-inline void Element::synchronizeAttribute(const QualifiedName& name) const
+ALWAYS_INLINE void Element::synchronizeAttribute(const QualifiedName& name) const
 {
     if (!elementData())
         return;
@@ -393,7 +393,7 @@ inline void Element::synchronizeAttribute(const QualifiedName& name) const
     }
 }
 
-inline void Element::synchronizeAttribute(const AtomicString& localName) const
+ALWAYS_INLINE void Element::synchronizeAttribute(const AtomicString& localName) const
 {
     // This version of synchronizeAttribute() is streamlined for the case where you don't have a full QualifiedName,
     // e.g when called from DOM API.
index e068192..986029e 100644 (file)
@@ -262,7 +262,7 @@ inline AttributeIteratorAccessor ElementData::attributesIterator() const
     return AttributeIteratorAccessor(static_cast<const ShareableElementData*>(this)->m_attributeArray, arraySize());
 }
 
-inline const Attribute* ElementData::findAttributeByName(const AtomicString& name, bool shouldIgnoreAttributeCase) const
+ALWAYS_INLINE const Attribute* ElementData::findAttributeByName(const AtomicString& name, bool shouldIgnoreAttributeCase) const
 {
     unsigned index = findAttributeIndexByName(name, shouldIgnoreAttributeCase);
     if (index != attributeNotFound)
@@ -270,7 +270,7 @@ inline const Attribute* ElementData::findAttributeByName(const AtomicString& nam
     return 0;
 }
 
-inline unsigned ElementData::findAttributeIndexByName(const QualifiedName& name) const
+ALWAYS_INLINE unsigned ElementData::findAttributeIndexByName(const QualifiedName& name) const
 {
     const Attribute* attributes = attributeBase();
     for (unsigned i = 0, count = length(); i < count; ++i) {
@@ -282,7 +282,7 @@ inline unsigned ElementData::findAttributeIndexByName(const QualifiedName& name)
 
 // We use a boolean parameter instead of calling shouldIgnoreAttributeCase so that the caller
 // can tune the behavior (hasAttribute is case sensitive whereas getAttribute is not).
-inline unsigned ElementData::findAttributeIndexByName(const AtomicString& name, bool shouldIgnoreAttributeCase) const
+ALWAYS_INLINE unsigned ElementData::findAttributeIndexByName(const AtomicString& name, bool shouldIgnoreAttributeCase) const
 {
     const Attribute* attributes = attributeBase();
     bool doSlowCheck = shouldIgnoreAttributeCase;
@@ -302,7 +302,7 @@ inline unsigned ElementData::findAttributeIndexByName(const AtomicString& name,
     return attributeNotFound;
 }
 
-inline const Attribute* ElementData::findAttributeByName(const QualifiedName& name) const
+ALWAYS_INLINE const Attribute* ElementData::findAttributeByName(const QualifiedName& name) const
 {
     const Attribute* attributes = attributeBase();
     for (unsigned i = 0, count = length(); i < count; ++i) {