From 2cf6c8816a73e0132bd8fa3b509d62d7c51b6e47 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Mon, 7 May 2012 11:21:11 +0200 Subject: Imported WebKit commit 7e538425aa020340619e927792f3d895061fb54b (http://svn.webkit.org/repository/webkit/trunk@116286) --- Source/JavaScriptCore/runtime/SmallStrings.cpp | 35 +++++++++++--------------- 1 file changed, 15 insertions(+), 20 deletions(-) (limited to 'Source/JavaScriptCore/runtime/SmallStrings.cpp') 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 -- cgit v1.2.1