Title: [122249] branches/chromium/1180/Source/WebCore/dom/NodeRareData.h
Revision
122249
Author
[email protected]
Date
2012-07-10 12:37:58 -0700 (Tue, 10 Jul 2012)

Log Message

Merge 121103
BUG=134088
Review URL: https://chromiumcodereview.appspot.com/10703124

Modified Paths

Diff

Modified: branches/chromium/1180/Source/WebCore/dom/NodeRareData.h (122248 => 122249)


--- branches/chromium/1180/Source/WebCore/dom/NodeRareData.h	2012-07-10 19:36:48 UTC (rev 122248)
+++ branches/chromium/1180/Source/WebCore/dom/NodeRareData.h	2012-07-10 19:37:58 UTC (rev 122249)
@@ -49,8 +49,18 @@
 struct NodeListsNodeData {
     WTF_MAKE_NONCOPYABLE(NodeListsNodeData); WTF_MAKE_FAST_ALLOCATED;
 public:
-    typedef HashMap<std::pair<unsigned short, AtomicString>, DynamicSubtreeNodeList*> NodeListAtomicNameCacheMap;
-    typedef HashMap<std::pair<unsigned short, String>, DynamicSubtreeNodeList*> NodeListNameCacheMap;
+    template <typename StringType>
+    struct NodeListCacheMapEntryHash : public WTF::PairHash<unsigned char, StringType> {
+        static unsigned hash(const std::pair<unsigned char, StringType>& entry)
+        {
+            return DefaultHash<StringType>::Hash::hash(entry.second) + entry.first;
+        }
+        static bool equal(const std::pair<unsigned char, StringType>& a, const std::pair<unsigned char, StringType>& b) { return a == b; }
+        static const bool safeToCompareToEmptyOrDeleted = DefaultHash<StringType>::Hash::safeToCompareToEmptyOrDeleted;
+    };
+
+    typedef HashMap<std::pair<unsigned char, AtomicString>, DynamicSubtreeNodeList*, NodeListCacheMapEntryHash<AtomicString> > NodeListAtomicNameCacheMap;
+    typedef HashMap<std::pair<unsigned char, String>, DynamicSubtreeNodeList*, NodeListCacheMapEntryHash<String> > NodeListNameCacheMap;
     typedef HashMap<QualifiedName, TagNodeList*> TagNodeListCacheNS;
 
     template<typename T>
@@ -151,14 +161,14 @@
 private:
     NodeListsNodeData() { }
 
-    std::pair<unsigned short, AtomicString> namedNodeListKey(DynamicNodeList::NodeListType listType, const AtomicString& name)
+    std::pair<unsigned char, AtomicString> namedNodeListKey(DynamicNodeList::NodeListType listType, const AtomicString& name)
     {
-        return std::pair<unsigned short, AtomicString>(listType, name);
+        return std::pair<unsigned char, AtomicString>(listType, name);
     }
 
-    std::pair<unsigned short, String> namedNodeListKey(DynamicNodeList::NodeListType listType, const String& name)
+    std::pair<unsigned char, String> namedNodeListKey(DynamicNodeList::NodeListType listType, const String& name)
     {
-        return std::pair<unsigned short, String>(listType, name);
+        return std::pair<unsigned char, String>(listType, name);
     }
 
     NodeListAtomicNameCacheMap m_atomicNameCaches;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to