diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-05-07 11:21:11 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-05-07 11:21:11 +0200 |
commit | 2cf6c8816a73e0132bd8fa3b509d62d7c51b6e47 (patch) | |
tree | 988e8c5b116dd0466244ae2fe5af8ee9be926d76 /Source/JavaScriptCore/runtime/SmallStrings.cpp | |
parent | dd91e772430dc294e3bf478c119ef8d43c0a3358 (diff) | |
download | qtwebkit-2cf6c8816a73e0132bd8fa3b509d62d7c51b6e47.tar.gz |
Imported WebKit commit 7e538425aa020340619e927792f3d895061fb54b (http://svn.webkit.org/repository/webkit/trunk@116286)
Diffstat (limited to 'Source/JavaScriptCore/runtime/SmallStrings.cpp')
-rw-r--r-- | Source/JavaScriptCore/runtime/SmallStrings.cpp | 35 |
1 files changed, 15 insertions, 20 deletions
diff --git a/Source/JavaScriptCore/runtime/SmallStrings.cpp b/Source/JavaScriptCore/runtime/SmallStrings.cpp index caf201c3d..f50f73d27 100644 --- a/Source/JavaScriptCore/runtime/SmallStrings.cpp +++ b/Source/JavaScriptCore/runtime/SmallStrings.cpp @@ -68,9 +68,15 @@ SmallStringsStorage::SmallStringsStorage() } SmallStrings::SmallStrings() + : m_emptyString(0) +#define JSC_COMMON_STRINGS_ATTRIBUTE_INITIALIZE(name) , m_##name(0) + JSC_COMMON_STRINGS_EACH_NAME(JSC_COMMON_STRINGS_ATTRIBUTE_INITIALIZE) +#undef JSC_COMMON_STRINGS_ATTRIBUTE_INITIALIZE { COMPILE_ASSERT(singleCharacterStringCount == sizeof(m_singleCharacterStrings) / sizeof(m_singleCharacterStrings[0]), IsNumCharactersConstInSyncWithClassUsage); - clear(); + + for (unsigned i = 0; i < singleCharacterStringCount; ++i) + m_singleCharacterStrings[i] = 0; } SmallStrings::~SmallStrings() @@ -82,25 +88,9 @@ void SmallStrings::finalizeSmallStrings() finalize(m_emptyString); for (unsigned i = 0; i < singleCharacterStringCount; ++i) finalize(m_singleCharacterStrings[i]); -} - -void SmallStrings::clear() -{ - m_emptyString = 0; - for (unsigned i = 0; i < singleCharacterStringCount; ++i) - m_singleCharacterStrings[i] = 0; -} - -unsigned SmallStrings::count() const -{ - unsigned count = 0; - if (m_emptyString) - ++count; - for (unsigned i = 0; i < singleCharacterStringCount; ++i) { - if (m_singleCharacterStrings[i]) - ++count; - } - return count; +#define JSC_COMMON_STRINGS_ATTRIBUTE_FINALIZE(name) finalize(m_##name); + JSC_COMMON_STRINGS_EACH_NAME(JSC_COMMON_STRINGS_ATTRIBUTE_FINALIZE) +#undef JSC_COMMON_STRINGS_ATTRIBUTE_FINALIZE } void SmallStrings::createEmptyString(JSGlobalData* globalData) @@ -124,4 +114,9 @@ StringImpl* SmallStrings::singleCharacterStringRep(unsigned char character) return m_storage->rep(character); } +void SmallStrings::initialize(JSGlobalData* globalData, JSString*& string, const char* value) const +{ + string = JSString::create(*globalData, StringImpl::create(value)); +} + } // namespace JSC |