summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/runtime/SmallStrings.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-05-07 11:21:11 +0200
committerSimon Hausmann <simon.hausmann@nokia.com>2012-05-07 11:21:11 +0200
commit2cf6c8816a73e0132bd8fa3b509d62d7c51b6e47 (patch)
tree988e8c5b116dd0466244ae2fe5af8ee9be926d76 /Source/JavaScriptCore/runtime/SmallStrings.cpp
parentdd91e772430dc294e3bf478c119ef8d43c0a3358 (diff)
downloadqtwebkit-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.cpp35
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