diff options
Diffstat (limited to 'Source/JavaScriptCore/runtime/SmallStrings.h')
-rw-r--r-- | Source/JavaScriptCore/runtime/SmallStrings.h | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/Source/JavaScriptCore/runtime/SmallStrings.h b/Source/JavaScriptCore/runtime/SmallStrings.h index 5bc9d2252..f00043021 100644 --- a/Source/JavaScriptCore/runtime/SmallStrings.h +++ b/Source/JavaScriptCore/runtime/SmallStrings.h @@ -26,6 +26,8 @@ #ifndef SmallStrings_h #define SmallStrings_h +#include "WriteBarrier.h" + #include <wtf/FixedArray.h> #include <wtf/Noncopyable.h> #include <wtf/OwnPtr.h> @@ -48,7 +50,7 @@ class StringImpl; namespace JSC { class HeapRootVisitor; - class JSGlobalData; + class VM; class JSString; class SmallStringsStorage; class SlotVisitor; @@ -61,17 +63,15 @@ namespace JSC { SmallStrings(); ~SmallStrings(); - JSString* emptyString(JSGlobalData* globalData) + JSString* emptyString() { - if (!m_emptyString) - createEmptyString(globalData); return m_emptyString; } - JSString* singleCharacterString(JSGlobalData* globalData, unsigned char character) + JSString* singleCharacterString(VM* vm, unsigned char character) { if (!m_singleCharacterStrings[character]) - createSingleCharacterString(globalData, character); + createSingleCharacterString(vm, character); return m_singleCharacterStrings[character]; } @@ -81,11 +81,12 @@ namespace JSC { JSString** singleCharacterStrings() { return &m_singleCharacterStrings[0]; } + void initializeCommonStrings(VM&); + void visitStrongReferences(SlotVisitor&); + #define JSC_COMMON_STRINGS_ACCESSOR_DEFINITION(name) \ - JSString* name##String(JSGlobalData* globalData) const \ + JSString* name##String() const \ { \ - if (!m_##name) \ - initialize(globalData, m_##name, #name); \ return m_##name; \ } JSC_COMMON_STRINGS_EACH_NAME(JSC_COMMON_STRINGS_ACCESSOR_DEFINITION) @@ -94,13 +95,13 @@ namespace JSC { private: static const unsigned singleCharacterStringCount = maxSingleCharacterString + 1; - JS_EXPORT_PRIVATE void createEmptyString(JSGlobalData*); - JS_EXPORT_PRIVATE void createSingleCharacterString(JSGlobalData*, unsigned char); + JS_EXPORT_PRIVATE void createEmptyString(VM*); + JS_EXPORT_PRIVATE void createSingleCharacterString(VM*, unsigned char); - void initialize(JSGlobalData* globalData, JSString*& string, const char* value) const; + void initialize(VM* vm, JSString*& string, const char* value) const; JSString* m_emptyString; -#define JSC_COMMON_STRINGS_ATTRIBUTE_DECLARATION(name) mutable JSString* m_##name; +#define JSC_COMMON_STRINGS_ATTRIBUTE_DECLARATION(name) JSString* m_##name; JSC_COMMON_STRINGS_EACH_NAME(JSC_COMMON_STRINGS_ATTRIBUTE_DECLARATION) #undef JSC_COMMON_STRINGS_ATTRIBUTE_DECLARATION JSString* m_singleCharacterStrings[singleCharacterStringCount]; |