Changeset 77229 in webkit


Ignore:
Timestamp:
Feb 1, 2011 1:11:02 AM (13 years ago)
Author:
rolandsteiner@chromium.org
Message:

2011-01-28 Roland Steiner <rolandsteiner@chromium.org>

Reviewed by NOBODY (OOPS!).

Bug 53289 - DOM: Move DocumentOrderedMap from Document into separate files
https://bugs.webkit.org/show_bug.cgi?id=53289

Moving the nested class DocumentOrderedMap from Document into separate files,
updating code where necessary.

No new tests. (refactoring)

  • Android.mk:
  • CMakeLists.txt:
  • GNUMakefile.am
  • WebCore.gypi:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp: (WebCore::Document::getElementById): (WebCore::Document::getImageMap):
  • dom/Document.h:
  • dom/DocumentOrderedMap.cpp: Added. (WebCore::keyMatchesId): (WebCore::keyMatchesMapName): (WebCore::keyMatchesLowercasedMapName): (WebCore::DocumentOrderedMap::clear): (WebCore::DocumentOrderedMap::add): (WebCore::DocumentOrderedMap::remove): (WebCore::DocumentOrderedMap::get): (WebCore::DocumentOrderedMap::getElementById): (WebCore::DocumentOrderedMap::getElementByMapName): (WebCore::DocumentOrderedMap::getElementByLowercasedMapName):
  • dom/DocumentOrderedMap.h: Added. (WebCore::DocumentOrderedMap::contains): (WebCore::DocumentOrderedMap::containsMultiple):
  • dom/DOMAllInOne.cpp:
Location:
trunk/Source/WebCore
Files:
2 added
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/Android.mk

    r77153 r77229  
    122122        dom/DocumentMarkerController.cpp \
    123123        dom/DocumentParser.cpp \
     124        dom/DocumentOrderedMap.cpp \
    124125        dom/DocumentType.cpp \
    125126        dom/DynamicNodeList.cpp \
  • trunk/Source/WebCore/CMakeLists.txt

    r77153 r77229  
    839839    dom/DocumentFragment.cpp
    840840    dom/DocumentParser.cpp
     841    dom/DocumentOrderedMap.cpp
    841842    dom/DocumentType.cpp
    842843    dom/DOMImplementation.cpp
  • trunk/Source/WebCore/ChangeLog

    r77228 r77229  
     12011-02-01  Roland Steiner  <rolandsteiner@chromium.org>
     2
     3        Reviewed by Dimitri Glazkov.
     4
     5        Bug 53289 - DOM: Move DocumentOrderedMap from Document into separate files
     6        https://bugs.webkit.org/show_bug.cgi?id=53289
     7
     8        Moving the nested class DocumentOrderedMap from Document into separate files,
     9        updating code where necessary.
     10
     11        No new tests. (refactoring)
     12
     13        * Android.mk:
     14        * CMakeLists.txt:
     15        * GNUMakefile.am:
     16        * WebCore.gypi:
     17        * WebCore.pro:
     18        * WebCore.vcproj/WebCore.vcproj:
     19        * WebCore.xcodeproj/project.pbxproj:
     20        * dom/Document.cpp:
     21        (WebCore::Document::getElementById):
     22        (WebCore::Document::getImageMap):
     23        * dom/Document.h:
     24        * dom/DocumentOrderedMap.cpp: Added.
     25        (WebCore::keyMatchesId):
     26        (WebCore::keyMatchesMapName):
     27        (WebCore::keyMatchesLowercasedMapName):
     28        (WebCore::DocumentOrderedMap::clear):
     29        (WebCore::DocumentOrderedMap::add):
     30        (WebCore::DocumentOrderedMap::remove):
     31        (WebCore::DocumentOrderedMap::get):
     32        (WebCore::DocumentOrderedMap::getElementById):
     33        (WebCore::DocumentOrderedMap::getElementByMapName):
     34        (WebCore::DocumentOrderedMap::getElementByLowercasedMapName):
     35        * dom/DocumentOrderedMap.h: Added.
     36        (WebCore::DocumentOrderedMap::contains):
     37        (WebCore::DocumentOrderedMap::containsMultiple):
     38        * dom/DOMAllInOne.cpp:
     39
    1402011-02-01  Naoki Takano  <takano.naoki@gmail.com>
    241
  • trunk/Source/WebCore/GNUmakefile.am

    r77153 r77229  
    11681168        Source/WebCore/dom/DocumentMarkerController.h \
    11691169        Source/WebCore/dom/DocumentMarker.h \
     1170        Source/WebCore/dom/DocumentOrderedMap.cpp \
     1171        Source/WebCore/dom/DocumentOrderedMap.h \
    11701172        Source/WebCore/dom/DocumentParser.cpp \
    11711173        Source/WebCore/dom/DocumentParser.h \
  • trunk/Source/WebCore/WebCore.gypi

    r77153 r77229  
    12211221            'dom/DocumentMarkerController.cpp',
    12221222            'dom/DocumentMarkerController.h',
     1223            'dom/DocumentOrderedMap.cpp',
     1224            'dom/DocumentOrderedMap.h',
    12231225            'dom/DocumentParser.cpp',
    12241226            'dom/DocumentParser.h',
  • trunk/Source/WebCore/WebCore.pro

    r77153 r77229  
    731731    dom/DocumentFragment.cpp \
    732732    dom/DocumentMarkerController.cpp \
     733    dom/DocumentOrderedMap.cpp \
    733734    dom/DocumentParser.cpp \
    734735    dom/DocumentType.cpp \
     
    16651666    dom/DocumentMarker.h \
    16661667    dom/DocumentMarkerController.h \
     1668    dom/DocumentOrderedMap.h \
    16671669    dom/DocumentType.h \
    16681670    dom/DOMImplementation.h \
  • trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj

    r77153 r77229  
    4307943079                        </File>
    4308043080                        <File
     43081                                RelativePath="..\dom\DocumentOrderedMap.cpp"
     43082                                >
     43083                                <FileConfiguration
     43084                                        Name="Debug|Win32"
     43085                                        ExcludedFromBuild="true"
     43086                                        >
     43087                                        <Tool
     43088                                                Name="VCCLCompilerTool"
     43089                                        />
     43090                                </FileConfiguration>
     43091                                <FileConfiguration
     43092                                        Name="Release|Win32"
     43093                                        ExcludedFromBuild="true"
     43094                                        >
     43095                                        <Tool
     43096                                                Name="VCCLCompilerTool"
     43097                                        />
     43098                                </FileConfiguration>
     43099                                <FileConfiguration
     43100                                        Name="Debug_Cairo_CFLite|Win32"
     43101                                        ExcludedFromBuild="true"
     43102                                        >
     43103                                        <Tool
     43104                                                Name="VCCLCompilerTool"
     43105                                        />
     43106                                </FileConfiguration>
     43107                                <FileConfiguration
     43108                                        Name="Release_Cairo_CFLite|Win32"
     43109                                        ExcludedFromBuild="true"
     43110                                        >
     43111                                        <Tool
     43112                                                Name="VCCLCompilerTool"
     43113                                        />
     43114                                </FileConfiguration>
     43115                                <FileConfiguration
     43116                                        Name="Debug_All|Win32"
     43117                                        ExcludedFromBuild="true"
     43118                                        >
     43119                                        <Tool
     43120                                                Name="VCCLCompilerTool"
     43121                                        />
     43122                                </FileConfiguration>
     43123                                <FileConfiguration
     43124                                        Name="Release_LTCG|Win32"
     43125                                        ExcludedFromBuild="true"
     43126                                        >
     43127                                        <Tool
     43128                                                Name="VCCLCompilerTool"
     43129                                        />
     43130                                </FileConfiguration>
     43131                        </File>
     43132                        <File
     43133                                RelativePath="..\dom\DocumentOrderedMap.h"
     43134                                >
     43135                        </File>
     43136                        <File
    4308143137                                RelativePath="..\dom\DocumentParser.cpp"
    4308243138                                >
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r77153 r77229  
    303303                1432E8470C51493800B1500F /* GCController.h in Headers */ = {isa = PBXBuildFile; fileRef = 1432E8460C51493800B1500F /* GCController.h */; settings = {ATTRIBUTES = (Private, ); }; };
    304304                1432E8490C51493F00B1500F /* GCController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1432E8480C51493F00B1500F /* GCController.cpp */; };
     305                143C890812F7C15E0052FFD0 /* DocumentOrderedMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 143C890612F7C15E0052FFD0 /* DocumentOrderedMap.cpp */; };
     306                143C890912F7C15E0052FFD0 /* DocumentOrderedMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 143C890712F7C15E0052FFD0 /* DocumentOrderedMap.h */; settings = {ATTRIBUTES = (Private, ); }; };
    305307                1449E24C107D4A8400B5793F /* JSCallbackData.h in Headers */ = {isa = PBXBuildFile; fileRef = 1449E24A107D4A8400B5793F /* JSCallbackData.h */; };
    306308                1449E287107D4DB400B5793F /* JSCallbackData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1449E286107D4DB400B5793F /* JSCallbackData.cpp */; };
     
    52075209                BCE3BEC20D222B1D007E06E4 /* TagNodeList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCE3BEC00D222B1D007E06E4 /* TagNodeList.cpp */; };
    52085210                BCE3BEC30D222B1D007E06E4 /* TagNodeList.h in Headers */ = {isa = PBXBuildFile; fileRef = BCE3BEC10D222B1D007E06E4 /* TagNodeList.h */; };
    5209                 BCE4413312F748E2009B84B8 /* RenderCombineText.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCE4413112F748E2009B84B8 /* RenderCombineText.cpp */; };
    5210                 BCE4413412F748E2009B84B8 /* RenderCombineText.h in Headers */ = {isa = PBXBuildFile; fileRef = BCE4413212F748E2009B84B8 /* RenderCombineText.h */; };
    5211                 BCE4413612F7490B009B84B8 /* FontWidthVariant.h in Headers */ = {isa = PBXBuildFile; fileRef = BCE4413512F7490B009B84B8 /* FontWidthVariant.h */; settings = {ATTRIBUTES = (Private, ); }; };
    52125211                BCE658FF0EA9248A007E4533 /* Theme.h in Headers */ = {isa = PBXBuildFile; fileRef = BCE658FE0EA9248A007E4533 /* Theme.h */; settings = {ATTRIBUTES = (Private, ); }; };
    52135212                BCE659A90EA927B9007E4533 /* ThemeTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = BCE659A80EA927B9007E4533 /* ThemeTypes.h */; settings = {ATTRIBUTES = (Private, ); }; };
     
    66286627                1432E8460C51493800B1500F /* GCController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GCController.h; sourceTree = "<group>"; };
    66296628                1432E8480C51493F00B1500F /* GCController.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GCController.cpp; sourceTree = "<group>"; };
     6629                143C890612F7C15E0052FFD0 /* DocumentOrderedMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DocumentOrderedMap.cpp; sourceTree = "<group>"; };
     6630                143C890712F7C15E0052FFD0 /* DocumentOrderedMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DocumentOrderedMap.h; sourceTree = "<group>"; };
    66306631                1449E24A107D4A8400B5793F /* JSCallbackData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCallbackData.h; sourceTree = "<group>"; };
    66316632                1449E286107D4DB400B5793F /* JSCallbackData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCallbackData.cpp; sourceTree = "<group>"; };
     
    1154111542                BCE3BEC00D222B1D007E06E4 /* TagNodeList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TagNodeList.cpp; sourceTree = "<group>"; };
    1154211543                BCE3BEC10D222B1D007E06E4 /* TagNodeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TagNodeList.h; sourceTree = "<group>"; };
    11543                 BCE4413112F748E2009B84B8 /* RenderCombineText.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderCombineText.cpp; sourceTree = "<group>"; };
    11544                 BCE4413212F748E2009B84B8 /* RenderCombineText.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderCombineText.h; sourceTree = "<group>"; };
    11545                 BCE4413512F7490B009B84B8 /* FontWidthVariant.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FontWidthVariant.h; sourceTree = "<group>"; };
    1154611544                BCE658FE0EA9248A007E4533 /* Theme.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Theme.h; sourceTree = "<group>"; };
    1154711545                BCE659A80EA927B9007E4533 /* ThemeTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ThemeTypes.h; sourceTree = "<group>"; };
     
    1750417502                                37202198106213C600F25C4B /* FontSmoothingMode.h */,
    1750517503                                3784C34A0E11AA34007D8D48 /* FontTraitsMask.h */,
    17506                                 BCE4413512F7490B009B84B8 /* FontWidthVariant.h */,
    1750717504                                BCE04C930DAFF902007A0F41 /* GeneratedImage.cpp */,
    1750817505                                BC23F0DA0DAFF4A4009FDC91 /* GeneratedImage.h */,
     
    1876018757                                BCEA4826097D93020094C9E4 /* RenderButton.cpp */,
    1876118758                                BCEA4827097D93020094C9E4 /* RenderButton.h */,
    18762                                 BCE4413112F748E2009B84B8 /* RenderCombineText.cpp */,
    18763                                 BCE4413212F748E2009B84B8 /* RenderCombineText.h */,
    1876418759                                9392F1430AD185FE00691BD4 /* RenderCounter.cpp */,
    1876518760                                9392F1410AD185F400691BD4 /* RenderCounter.h */,
     
    1900018995                                A8C2280D11D4A59700D5A7D3 /* DocumentParser.cpp */,
    1900118996                                BCCFBAE70B5152ED0001F1D7 /* DocumentParser.h */,
     18997                                143C890612F7C15E0052FFD0 /* DocumentOrderedMap.cpp */,
     18998                                143C890712F7C15E0052FFD0 /* DocumentOrderedMap.h */,
    1900218999                                86D982F6125C154000AD9E3D /* DocumentTiming.h */,
    1900319000                                A8185F3209765765005826D9 /* DocumentType.cpp */,
     
    2246822465                                977E2E0F12F0FC9C00C13379 /* XSSFilter.h in Headers */,
    2246922466                                0F3DD45012F5EA1B000D9190 /* ShadowBlur.h in Headers */,
    22470                                 BCE4413412F748E2009B84B8 /* RenderCombineText.h in Headers */,
    22471                                 BCE4413612F7490B009B84B8 /* FontWidthVariant.h in Headers */,
     22467                                143C890912F7C15E0052FFD0 /* DocumentOrderedMap.h in Headers */,
    2247222468                        );
    2247322469                        runOnlyForDeploymentPostprocessing = 0;
     
    2516825164                                977E2E0E12F0FC9C00C13379 /* XSSFilter.cpp in Sources */,
    2516925165                                0F3DD44F12F5EA1B000D9190 /* ShadowBlur.cpp in Sources */,
    25170                                 BCE4413312F748E2009B84B8 /* RenderCombineText.cpp in Sources */,
     25166                                143C890812F7C15E0052FFD0 /* DocumentOrderedMap.cpp in Sources */,
    2517125167                        );
    2517225168                        runOnlyForDeploymentPostprocessing = 0;
  • trunk/Source/WebCore/dom/DOMAllInOne.cpp

    r74851 r77229  
    6161#include "DocumentFragment.cpp"
    6262#include "DocumentMarkerController.cpp"
     63#include "DocumentOrderedMap.cpp"
    6364#include "DocumentParser.cpp"
    6465#include "DocumentType.cpp"
  • trunk/Source/WebCore/dom/Document.cpp

    r76872 r77229  
    227227static const int cLayoutScheduleThreshold = 250;
    228228
    229 // These functions can't have internal linkage because they are used as template arguments.
    230 bool keyMatchesId(AtomicStringImpl*, Element*);
    231 bool keyMatchesMapName(AtomicStringImpl*, Element*);
    232 bool keyMatchesLowercasedMapName(AtomicStringImpl*, Element*);
    233 
    234229// DOM Level 2 says (letters added):
    235230//
     
    508503}
    509504
    510 inline void Document::DocumentOrderedMap::clear()
    511 {
    512     m_map.clear();
    513     m_duplicateCounts.clear();
    514 }
    515 
    516505void Document::removedLastRef()
    517506{
     
    996985}
    997986
    998 inline void Document::DocumentOrderedMap::add(AtomicStringImpl* key, Element* element)
    999 {
    1000     ASSERT(key);
    1001     ASSERT(element);
    1002 
    1003     if (!m_duplicateCounts.contains(key)) {
    1004         // Fast path. The key is not already in m_duplicateCounts, so we assume that it's
    1005         // also not already in m_map and try to add it. If that add succeeds, we're done.
    1006         pair<Map::iterator, bool> addResult = m_map.add(key, element);
    1007         if (addResult.second)
    1008             return;
    1009 
    1010         // The add failed, so this key was already cached in m_map.
    1011         // There are multiple elements with this key. Remove the m_map
    1012         // cache for this key so get searches for it next time it is called.
    1013         m_map.remove(addResult.first);
    1014         m_duplicateCounts.add(key);
    1015     } else {
    1016         // There are multiple elements with this key. Remove the m_map
    1017         // cache for this key so get will search for it next time it is called.
    1018         Map::iterator cachedItem = m_map.find(key);
    1019         if (cachedItem != m_map.end()) {
    1020             m_map.remove(cachedItem);
    1021             m_duplicateCounts.add(key);
    1022         }
    1023     }
    1024 
    1025     m_duplicateCounts.add(key);
    1026 }
    1027 
    1028 inline void Document::DocumentOrderedMap::remove(AtomicStringImpl* key, Element* element)
    1029 {
    1030     ASSERT(key);
    1031     ASSERT(element);
    1032 
    1033     m_map.checkConsistency();
    1034     Map::iterator cachedItem = m_map.find(key);
    1035     if (cachedItem != m_map.end() && cachedItem->second == element)
    1036         m_map.remove(cachedItem);
    1037     else
    1038         m_duplicateCounts.remove(key);
    1039 }
    1040 
    1041 template<bool keyMatches(AtomicStringImpl*, Element*)> inline Element* Document::DocumentOrderedMap::get(AtomicStringImpl* key, const Document* document) const
    1042 {
    1043     ASSERT(key);
    1044 
    1045     m_map.checkConsistency();
    1046 
    1047     Element* element = m_map.get(key);
    1048     if (element)
    1049         return element;
    1050 
    1051     if (m_duplicateCounts.contains(key)) {
    1052         // We know there's at least one node that matches; iterate to find the first one.
    1053         for (Node* node = document->firstChild(); node; node = node->traverseNextNode()) {
    1054             if (!node->isElementNode())
    1055                 continue;
    1056             element = static_cast<Element*>(node);
    1057             if (!keyMatches(key, element))
    1058                 continue;
    1059             m_duplicateCounts.remove(key);
    1060             m_map.set(key, element);
    1061             return element;
    1062         }
    1063         ASSERT_NOT_REACHED();
    1064     }
    1065 
    1066     return 0;
    1067 }
    1068 
    1069 inline bool keyMatchesId(AtomicStringImpl* key, Element* element)
    1070 {
    1071     return element->hasID() && element->getIdAttribute().impl() == key;
    1072 }
    1073 
    1074987Element* Document::getElementById(const AtomicString& elementId) const
    1075988{
    1076989    if (elementId.isEmpty())
    1077990        return 0;
    1078     return m_elementsById.get<keyMatchesId>(elementId.impl(), this);
     991    return m_elementsById.getElementById(elementId.impl(), this);
    1079992}
    1080993
     
    39013814}
    39023815
    3903 inline bool keyMatchesMapName(AtomicStringImpl* key, Element* element)
    3904 {
    3905     return element->hasTagName(mapTag) && static_cast<HTMLMapElement*>(element)->getName().impl() == key;
    3906 }
    3907 
    3908 inline bool keyMatchesLowercasedMapName(AtomicStringImpl* key, Element* element)
    3909 {
    3910     return element->hasTagName(mapTag) && static_cast<HTMLMapElement*>(element)->getName().lower().impl() == key;
    3911 }
    3912 
    39133816HTMLMapElement* Document::getImageMap(const String& url) const
    39143817{
     
    39183821    String name = (hashPos == notFound ? url : url.substring(hashPos + 1)).impl();
    39193822    if (isHTMLDocument())
    3920         return static_cast<HTMLMapElement*>(m_imageMapsByName.get<keyMatchesLowercasedMapName>(AtomicString(name.lower()).impl(), this));
    3921     return static_cast<HTMLMapElement*>(m_imageMapsByName.get<keyMatchesMapName>(AtomicString(name).impl(), this));
     3823        return static_cast<HTMLMapElement*>(m_imageMapsByName.getElementByLowercasedMapName(AtomicString(name.lower()).impl(), this));
     3824    return static_cast<HTMLMapElement*>(m_imageMapsByName.getElementByMapName(AtomicString(name).impl(), this));
    39223825}
    39233826
  • trunk/Source/WebCore/dom/Document.h

    r77216 r77229  
    3434#include "ContainerNode.h"
    3535#include "DOMTimeStamp.h"
     36#include "DocumentOrderedMap.h"
    3637#include "DocumentTiming.h"
    3738#include "QualifiedName.h"
     
    4041#include "ViewportArguments.h"
    4142#include <wtf/FixedArray.h>
    42 #include <wtf/HashCountedSet.h>
    4343#include <wtf/OwnPtr.h>
    4444#include <wtf/PassOwnPtr.h>
     45#include <wtf/PassRefPtr.h>
    4546
    4647#if USE(JSC)
     
    10951096
    10961097private:
    1097     class DocumentOrderedMap {
    1098     public:
    1099         void add(AtomicStringImpl*, Element*);
    1100         void remove(AtomicStringImpl*, Element*);
    1101         void clear();
    1102 
    1103         bool contains(AtomicStringImpl*) const;
    1104         bool containsMultiple(AtomicStringImpl*) const;
    1105         template<bool keyMatches(AtomicStringImpl*, Element*)> Element* get(AtomicStringImpl*, const Document*) const;
    1106 
    1107         void checkConsistency() const;
    1108 
    1109     private:
    1110         typedef HashMap<AtomicStringImpl*, Element*> Map;
    1111 
    1112         // We maintain the invariant that m_duplicateCounts is the count of all elements with a given key
    1113         // excluding the one referenced in m_map, if any. This means it one less than the total count
    1114         // when the first node with a given key is cached, otherwise the same as the total count.
    1115         mutable Map m_map;
    1116         mutable HashCountedSet<AtomicStringImpl*> m_duplicateCounts;
    1117     };
    1118 
    11191098    friend class IgnoreDestructiveWriteCountIncrementer;
    11201099
     
    14121391};
    14131392
    1414 inline bool Document::DocumentOrderedMap::contains(AtomicStringImpl* id) const
    1415 {
    1416     return m_map.contains(id) || m_duplicateCounts.contains(id);
    1417 }
    1418 
    1419 inline bool Document::DocumentOrderedMap::containsMultiple(AtomicStringImpl* id) const
    1420 {
    1421     return m_duplicateCounts.contains(id);
    1422 }
    1423 
    14241393inline bool Document::hasElementWithId(AtomicStringImpl* id) const
    14251394{
Note: See TracChangeset for help on using the changeset viewer.