Remove Document::collectionInfo() and let collections manage their caches.
authorkling@webkit.org <kling@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 1 Jan 2012 00:50:00 +0000 (00:50 +0000)
committerkling@webkit.org <kling@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 1 Jan 2012 00:50:00 +0000 (00:50 +0000)
<http://webkit.org/b/75401>

Reviewed by Anders Carlsson.

Remove the CollectionCaches from Document and have the document's collections
create and manage the caches on-demand instead. This is a step towards merging
CollectionCache into HTMLCollection.

* dom/Document.h:
* dom/Document.cpp:
* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::HTMLCollection):
* html/HTMLOptionsCollection.cpp:

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

Source/WebCore/ChangeLog
Source/WebCore/dom/Document.cpp
Source/WebCore/dom/Document.h
Source/WebCore/html/HTMLCollection.cpp
Source/WebCore/html/HTMLOptionsCollection.cpp

index 5ed8f12..8d696f1 100644 (file)
@@ -1,5 +1,22 @@
 2012-01-01  Andreas Kling  <awesomekling@apple.com>
 
+        Remove Document::collectionInfo() and let collections manage their caches.
+        <http://webkit.org/b/75401>
+
+        Reviewed by Anders Carlsson.
+
+        Remove the CollectionCaches from Document and have the document's collections
+        create and manage the caches on-demand instead. This is a step towards merging
+        CollectionCache into HTMLCollection.
+
+        * dom/Document.h:
+        * dom/Document.cpp:
+        * html/HTMLCollection.cpp:
+        (WebCore::HTMLCollection::HTMLCollection):
+        * html/HTMLOptionsCollection.cpp:
+
+2012-01-01  Andreas Kling  <awesomekling@apple.com>
+
         RenderThemeMac: Avoid double hash lookup in systemColor().
         <http://webkit.org/b/75409>
 
index cdae856..9e6662d 100644 (file)
@@ -41,6 +41,7 @@
 #include "CachedResourceLoader.h"
 #include "Chrome.h"
 #include "ChromeClient.h"
+#include "CollectionCache.h"
 #include "Comment.h"
 #include "Console.h"
 #include "ContentSecurityPolicy.h"
index 00fbb4f..44b9dc7 100644 (file)
@@ -29,7 +29,6 @@
 #define Document_h
 
 #include "CheckedRadioButtons.h"
-#include "CollectionCache.h"
 #include "CollectionType.h"
 #include "Color.h"
 #include "DOMTimeStamp.h"
@@ -138,6 +137,8 @@ class XPathExpression;
 class XPathNSResolver;
 class XPathResult;
 
+struct CollectionCache;
+
 #if ENABLE(SVG)
 class SVGDocumentExtensions;
 #endif
@@ -424,15 +425,6 @@ public:
 
     PassRefPtr<HTMLAllCollection> all();
 
-    CollectionCache* collectionInfo(CollectionType type)
-    {
-        ASSERT(type >= FirstUnnamedDocumentCachedType);
-        unsigned index = type - FirstUnnamedDocumentCachedType;
-        ASSERT(index < NumUnnamedDocumentCachedTypes);
-        m_collectionInfo[index].checkConsistency();
-        return &m_collectionInfo[index]; 
-    }
-
     CollectionCache* nameCollectionInfo(CollectionType, const AtomicString& name);
 
     // Other methods (not part of DOM)
@@ -1373,7 +1365,6 @@ private:
     RefPtr<HTMLAllCollection> m_allCollection;
 
     typedef HashMap<AtomicStringImpl*, OwnPtr<CollectionCache> > NamedCollectionMap;
-    FixedArray<CollectionCache, NumUnnamedDocumentCachedTypes> m_collectionInfo;
     FixedArray<NamedCollectionMap, NumNamedDocumentCachedTypes> m_nameCollectionInfo;
 
     RefPtr<XPathEvaluator> m_xpathEvaluator;
index 250e39d..225e3e6 100644 (file)
@@ -23,6 +23,7 @@
 #include "config.h"
 #include "HTMLCollection.h"
 
+#include "CollectionCache.h"
 #include "HTMLDocument.h"
 #include "HTMLElement.h"
 #include "HTMLNames.h"
@@ -42,7 +43,7 @@ HTMLCollection::HTMLCollection(Document* document, CollectionType type)
     , m_ownsInfo(false)
     , m_type(type)
     , m_base(document)
-    , m_info(document->collectionInfo(type))
+    , m_info(0)
 {
 }
 
index 5798441..c4769e2 100644 (file)
@@ -21,6 +21,7 @@
 #include "config.h"
 #include "HTMLOptionsCollection.h"
 
+#include "CollectionCache.h"
 #include "ExceptionCode.h"
 #include "HTMLOptionElement.h"
 #include "HTMLSelectElement.h"