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

Unified Diff: Source/core/dom/SpaceSplitString.h

Issue 488593003: Make SpaceSplitStringData private and rename to Data (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Clean up Created 6 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | Source/core/dom/SpaceSplitString.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/dom/SpaceSplitString.h
diff --git a/Source/core/dom/SpaceSplitString.h b/Source/core/dom/SpaceSplitString.h
index 6c98ec9827dd7b3fd28224bfc61b681570547092..c5f47adb6c6173cd23969dcff3e9af3013490683 100644
--- a/Source/core/dom/SpaceSplitString.h
+++ b/Source/core/dom/SpaceSplitString.h
@@ -27,12 +27,32 @@
namespace blink {
- class SpaceSplitStringData : public RefCounted<SpaceSplitStringData> {
+class SpaceSplitString {
+public:
+ SpaceSplitString() { }
+ SpaceSplitString(const AtomicString& string, bool shouldFoldCase) { set(string, shouldFoldCase); }
+
+ bool operator!=(const SpaceSplitString& other) const { return m_data != other.m_data; }
+
+ void set(const AtomicString&, bool shouldFoldCase);
+ void clear() { m_data.clear(); }
+
+ bool contains(const AtomicString& string) const { return m_data && m_data->contains(string); }
+ bool containsAll(const SpaceSplitString& names) const { return !names.m_data || (m_data && m_data->containsAll(*names.m_data)); }
+ void add(const AtomicString&);
+ bool remove(const AtomicString&);
+
+ size_t size() const { return m_data ? m_data->size() : 0; }
+ bool isNull() const { return !m_data; }
+ const AtomicString& operator[](size_t i) const { ASSERT_WITH_SECURITY_IMPLICATION(i < size()); return (*m_data)[i]; }
+
+private:
+ class Data : public RefCounted<Data> {
public:
- static PassRefPtr<SpaceSplitStringData> create(const AtomicString&);
- static PassRefPtr<SpaceSplitStringData> createUnique(const SpaceSplitStringData&);
+ static PassRefPtr<Data> create(const AtomicString&);
+ static PassRefPtr<Data> createUnique(const Data&);
- ~SpaceSplitStringData();
+ ~Data();
bool contains(const AtomicString& string)
{
@@ -44,7 +64,7 @@ namespace blink {
return false;
}
- bool containsAll(SpaceSplitStringData&);
+ bool containsAll(Data&);
void add(const AtomicString&);
void remove(unsigned index);
@@ -54,8 +74,8 @@ namespace blink {
const AtomicString& operator[](size_t i) { ASSERT_WITH_SECURITY_IMPLICATION(i < size()); return m_vector[i]; }
private:
- explicit SpaceSplitStringData(const AtomicString&);
- explicit SpaceSplitStringData(const SpaceSplitStringData&);
+ explicit Data(const AtomicString&);
+ explicit Data(const Data&);
void createVector(const String&);
template <typename CharacterType>
@@ -64,35 +84,18 @@ namespace blink {
AtomicString m_keyString;
Vector<AtomicString, 4> m_vector;
};
+ typedef HashMap<AtomicString, Data*> DataMap;
- class SpaceSplitString {
- public:
- SpaceSplitString() { }
- SpaceSplitString(const AtomicString& string, bool shouldFoldCase) { set(string, shouldFoldCase); }
-
- bool operator!=(const SpaceSplitString& other) const { return m_data != other.m_data; }
+ static DataMap& sharedDataMap();
- void set(const AtomicString&, bool shouldFoldCase);
- void clear() { m_data.clear(); }
+ void ensureUnique()
+ {
+ if (m_data && !m_data->isUnique())
+ m_data = Data::createUnique(*m_data);
+ }
- bool contains(const AtomicString& string) const { return m_data && m_data->contains(string); }
- bool containsAll(const SpaceSplitString& names) const { return !names.m_data || (m_data && m_data->containsAll(*names.m_data)); }
- void add(const AtomicString&);
- bool remove(const AtomicString&);
-
- size_t size() const { return m_data ? m_data->size() : 0; }
- bool isNull() const { return !m_data; }
- const AtomicString& operator[](size_t i) const { ASSERT_WITH_SECURITY_IMPLICATION(i < size()); return (*m_data)[i]; }
-
- private:
- void ensureUnique()
- {
- if (m_data && !m_data->isUnique())
- m_data = SpaceSplitStringData::createUnique(*m_data);
- }
-
- RefPtr<SpaceSplitStringData> m_data;
- };
+ RefPtr<Data> m_data;
+};
} // namespace blink
« no previous file with comments | « no previous file | Source/core/dom/SpaceSplitString.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698