From d441d6f39bb846989d95bcf5caf387b42414718d Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Fri, 13 Sep 2013 12:51:20 +0200 Subject: Import Qt5x2 branch of QtWebkit for Qt 5.2 Importing a new snapshot of webkit. Change-Id: I2d01ad12cdc8af8cb015387641120a9d7ea5f10c Reviewed-by: Allan Sandfeld Jensen --- Source/JavaScriptCore/runtime/SmallStrings.cpp | 32 ++++++++++++++++++-------- 1 file changed, 23 insertions(+), 9 deletions(-) (limited to 'Source/JavaScriptCore/runtime/SmallStrings.cpp') diff --git a/Source/JavaScriptCore/runtime/SmallStrings.cpp b/Source/JavaScriptCore/runtime/SmallStrings.cpp index 56a359279..5f35cca5e 100644 --- a/Source/JavaScriptCore/runtime/SmallStrings.cpp +++ b/Source/JavaScriptCore/runtime/SmallStrings.cpp @@ -29,6 +29,7 @@ #include "HeapRootVisitor.h" #include "JSGlobalObject.h" #include "JSString.h" +#include "Operations.h" #include #include #include @@ -80,6 +81,22 @@ SmallStrings::SmallStrings() m_singleCharacterStrings[i] = 0; } +void SmallStrings::initializeCommonStrings(VM& vm) +{ + createEmptyString(&vm); +#define JSC_COMMON_STRINGS_ATTRIBUTE_INITIALIZE(name) initialize(&vm, m_##name, #name); + JSC_COMMON_STRINGS_EACH_NAME(JSC_COMMON_STRINGS_ATTRIBUTE_INITIALIZE) +#undef JSC_COMMON_STRINGS_ATTRIBUTE_INITIALIZE +} + +void SmallStrings::visitStrongReferences(SlotVisitor& visitor) +{ + visitor.appendUnbarrieredPointer(&m_emptyString); +#define JSC_COMMON_STRINGS_ATTRIBUTE_VISIT(name) visitor.appendUnbarrieredPointer(&m_##name); + JSC_COMMON_STRINGS_EACH_NAME(JSC_COMMON_STRINGS_ATTRIBUTE_VISIT) +#undef JSC_COMMON_STRINGS_ATTRIBUTE_VISIT +} + SmallStrings::~SmallStrings() { } @@ -89,23 +106,20 @@ void SmallStrings::finalizeSmallStrings() finalize(m_emptyString); for (unsigned i = 0; i < singleCharacterStringCount; ++i) finalize(m_singleCharacterStrings[i]); -#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) +void SmallStrings::createEmptyString(VM* vm) { ASSERT(!m_emptyString); - m_emptyString = JSString::createHasOtherOwner(*globalData, StringImpl::empty()); + m_emptyString = JSString::createHasOtherOwner(*vm, StringImpl::empty()); } -void SmallStrings::createSingleCharacterString(JSGlobalData* globalData, unsigned char character) +void SmallStrings::createSingleCharacterString(VM* vm, unsigned char character) { if (!m_storage) m_storage = adoptPtr(new SmallStringsStorage); ASSERT(!m_singleCharacterStrings[character]); - m_singleCharacterStrings[character] = JSString::createHasOtherOwner(*globalData, PassRefPtr(m_storage->rep(character))); + m_singleCharacterStrings[character] = JSString::createHasOtherOwner(*vm, PassRefPtr(m_storage->rep(character))); } StringImpl* SmallStrings::singleCharacterStringRep(unsigned char character) @@ -115,9 +129,9 @@ StringImpl* SmallStrings::singleCharacterStringRep(unsigned char character) return m_storage->rep(character); } -void SmallStrings::initialize(JSGlobalData* globalData, JSString*& string, const char* value) const +void SmallStrings::initialize(VM* vm, JSString*& string, const char* value) const { - string = JSString::create(*globalData, StringImpl::create(value)); + string = JSString::create(*vm, StringImpl::create(value)); } } // namespace JSC -- cgit v1.2.1