Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(836)

Side by Side Diff: third_party/WebKit/Source/core/dom/SpaceSplitString.h

Issue 2401523002: Replace ASSERT family with DCHECK and so on in core/dom/. (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2007, 2008, 2010, 2011, 2012 Apple Inc. All rights reserved. 2 * Copyright (C) 2007, 2008, 2010, 2011, 2012 Apple Inc. All rights reserved.
3 * 3 *
4 * This library is free software; you can redistribute it and/or 4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public 5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either 6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version. 7 * version 2 of the License, or (at your option) any later version.
8 * 8 *
9 * This library is distributed in the hope that it will be useful, 9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 } 50 }
51 bool containsAll(const SpaceSplitString& names) const { 51 bool containsAll(const SpaceSplitString& names) const {
52 return !names.m_data || (m_data && m_data->containsAll(*names.m_data)); 52 return !names.m_data || (m_data && m_data->containsAll(*names.m_data));
53 } 53 }
54 void add(const AtomicString&); 54 void add(const AtomicString&);
55 bool remove(const AtomicString&); 55 bool remove(const AtomicString&);
56 56
57 size_t size() const { return m_data ? m_data->size() : 0; } 57 size_t size() const { return m_data ? m_data->size() : 0; }
58 bool isNull() const { return !m_data; } 58 bool isNull() const { return !m_data; }
59 const AtomicString& operator[](size_t i) const { 59 const AtomicString& operator[](size_t i) const {
60 ASSERT_WITH_SECURITY_IMPLICATION(i < size());
61 return (*m_data)[i]; 60 return (*m_data)[i];
62 } 61 }
63 62
64 private: 63 private:
65 class Data : public RefCounted<Data> { 64 class Data : public RefCounted<Data> {
66 public: 65 public:
67 static PassRefPtr<Data> create(const AtomicString&); 66 static PassRefPtr<Data> create(const AtomicString&);
68 static PassRefPtr<Data> createUnique(const Data&); 67 static PassRefPtr<Data> createUnique(const Data&);
69 68
70 ~Data(); 69 ~Data();
71 70
72 bool contains(const AtomicString& string) { 71 bool contains(const AtomicString& string) {
73 size_t size = m_vector.size(); 72 size_t size = m_vector.size();
74 for (size_t i = 0; i < size; ++i) { 73 for (size_t i = 0; i < size; ++i) {
75 if (m_vector[i] == string) 74 if (m_vector[i] == string)
76 return true; 75 return true;
77 } 76 }
78 return false; 77 return false;
79 } 78 }
80 79
81 bool containsAll(Data&); 80 bool containsAll(Data&);
82 81
83 void add(const AtomicString&); 82 void add(const AtomicString&);
84 void remove(unsigned index); 83 void remove(unsigned index);
85 84
86 bool isUnique() const { return m_keyString.isNull(); } 85 bool isUnique() const { return m_keyString.isNull(); }
87 size_t size() const { return m_vector.size(); } 86 size_t size() const { return m_vector.size(); }
88 const AtomicString& operator[](size_t i) { 87 const AtomicString& operator[](size_t i) {
89 ASSERT_WITH_SECURITY_IMPLICATION(i < size());
90 return m_vector[i]; 88 return m_vector[i];
91 } 89 }
92 90
93 private: 91 private:
94 explicit Data(const AtomicString&); 92 explicit Data(const AtomicString&);
95 explicit Data(const Data&); 93 explicit Data(const Data&);
96 94
97 void createVector(const String&); 95 void createVector(const String&);
98 template <typename CharacterType> 96 template <typename CharacterType>
99 inline void createVector(const CharacterType*, unsigned); 97 inline void createVector(const CharacterType*, unsigned);
100 98
101 AtomicString m_keyString; 99 AtomicString m_keyString;
102 Vector<AtomicString, 4> m_vector; 100 Vector<AtomicString, 4> m_vector;
103 }; 101 };
104 typedef HashMap<AtomicString, Data*> DataMap; 102 typedef HashMap<AtomicString, Data*> DataMap;
105 103
106 static DataMap& sharedDataMap(); 104 static DataMap& sharedDataMap();
107 105
108 void ensureUnique() { 106 void ensureUnique() {
109 if (m_data && !m_data->isUnique()) 107 if (m_data && !m_data->isUnique())
110 m_data = Data::createUnique(*m_data); 108 m_data = Data::createUnique(*m_data);
111 } 109 }
112 110
113 RefPtr<Data> m_data; 111 RefPtr<Data> m_data;
114 }; 112 };
115 113
116 } // namespace blink 114 } // namespace blink
117 115
118 #endif // SpaceSplitString_h 116 #endif // SpaceSplitString_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/dom/SecurityContext.cpp ('k') | third_party/WebKit/Source/core/dom/StyleSheetCandidate.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698