diff options
Diffstat (limited to 'Source/WebCore/dom/SpaceSplitString.h')
-rw-r--r-- | Source/WebCore/dom/SpaceSplitString.h | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/Source/WebCore/dom/SpaceSplitString.h b/Source/WebCore/dom/SpaceSplitString.h index 2f0e0d35a..26fc99224 100644 --- a/Source/WebCore/dom/SpaceSplitString.h +++ b/Source/WebCore/dom/SpaceSplitString.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2007, 2008, 2010, 2011, 2012, 2013 Apple Inc. All rights reserved. + * Copyright (C) 2007-2014 Apple Inc. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -18,12 +18,9 @@ * */ -#ifndef SpaceSplitString_h -#define SpaceSplitString_h +#pragma once -#include <wtf/Assertions.h> #include <wtf/MainThread.h> -#include <wtf/Noncopyable.h> #include <wtf/text/AtomicString.h> namespace WebCore { @@ -32,7 +29,7 @@ class SpaceSplitStringData { WTF_MAKE_NONCOPYABLE(SpaceSplitStringData); WTF_MAKE_FAST_ALLOCATED; public: - static PassRefPtr<SpaceSplitStringData> create(const AtomicString&); + static RefPtr<SpaceSplitStringData> create(const AtomicString&); bool contains(const AtomicString& string) { @@ -51,26 +48,26 @@ public: unsigned size() const { return m_size; } static ptrdiff_t sizeMemoryOffset() { return OBJECT_OFFSETOF(SpaceSplitStringData, m_size); } - const AtomicString& operator[](size_t i) + const AtomicString& operator[](unsigned i) { RELEASE_ASSERT(i < m_size); return tokenArrayStart()[i]; } - inline void ref() + void ref() { ASSERT(isMainThread()); ASSERT(m_refCount); ++m_refCount; } - inline void deref() + void deref() { ASSERT(isMainThread()); ASSERT(m_refCount); unsigned tempRefCount = m_refCount - 1; if (!tempRefCount) { - SpaceSplitStringData::destroy(this); + destroy(this); return; } m_refCount = tempRefCount; @@ -79,7 +76,7 @@ public: static ptrdiff_t tokensMemoryOffset() { return sizeof(SpaceSplitStringData); } private: - static PassRefPtr<SpaceSplitStringData> create(const AtomicString&, unsigned tokenCount); + static Ref<SpaceSplitStringData> create(const AtomicString&, unsigned tokenCount); SpaceSplitStringData(const AtomicString& string, unsigned size) : m_keyString(string) , m_refCount(1) @@ -89,7 +86,7 @@ private: ASSERT_WITH_MESSAGE(m_size, "SpaceSplitStringData should never be empty by definition. There is no difference between empty and null."); } - inline ~SpaceSplitStringData() { } + ~SpaceSplitStringData() { } static void destroy(SpaceSplitStringData*); AtomicString* tokenArrayStart() { return reinterpret_cast<AtomicString*>(this + 1); } @@ -107,14 +104,14 @@ public: bool operator!=(const SpaceSplitString& other) const { return m_data != other.m_data; } void set(const AtomicString&, bool shouldFoldCase); - void clear() { m_data.clear(); } + void clear() { m_data = nullptr; } 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)); } - size_t size() const { return m_data ? m_data->size() : 0; } + unsigned size() const { return m_data ? m_data->size() : 0; } bool isEmpty() const { return !m_data; } - const AtomicString& operator[](size_t i) const + const AtomicString& operator[](unsigned i) const { ASSERT_WITH_SECURITY_IMPLICATION(m_data); return (*m_data)[i]; @@ -128,10 +125,7 @@ public: } private: - RefPtr<SpaceSplitStringData> m_data; }; } // namespace WebCore - -#endif // SpaceSplitString_h |