Changeset 34607 in webkit for trunk/JavaScriptCore/kjs/identifier.cpp
- Timestamp:
- Jun 16, 2008, 4:28:38 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/identifier.cpp
r34412 r34607 125 125 }; 126 126 127 PassRefPtr<UString::Rep> Identifier::add( const char* c)127 PassRefPtr<UString::Rep> Identifier::add(JSGlobalData* globalData, const char* c) 128 128 { 129 129 if (!c) { … … 137 137 } 138 138 139 IdentifierTable& identifierTable = * JSGlobalData::threadInstance().identifierTable;139 IdentifierTable& identifierTable = *globalData->identifierTable; 140 140 LiteralIdentifierTable& literalIdentifierTable = identifierTable.literalTable(); 141 141 … … 150 150 } 151 151 152 PassRefPtr<UString::Rep> Identifier::add(JSGlobalData* globalData, const char* c) 153 { 154 if (!c) { 155 UString::Rep::null.hash(); 156 return &UString::Rep::null; 157 } 158 159 if (!c[0]) { 160 UString::Rep::empty.hash(); 161 return &UString::Rep::empty; 162 } 163 164 IdentifierTable& identifierTable = *globalData->identifierTable; 165 LiteralIdentifierTable& literalIdentifierTable = identifierTable.literalTable(); 166 167 const LiteralIdentifierTable::iterator& iter = literalIdentifierTable.find(c); 168 if (iter != literalIdentifierTable.end()) 169 return iter->second; 170 171 UString::Rep* addedString = *identifierTable.add<const char*, CStringTranslator>(c).first; 172 literalIdentifierTable.add(c, addedString); 173 174 return addedString; 152 PassRefPtr<UString::Rep> Identifier::add(ExecState* exec, const char* c) 153 { 154 return add(&exec->globalData(), c); 175 155 } 176 156 … … 206 186 }; 207 187 208 PassRefPtr<UString::Rep> Identifier::add( const UChar *s, int length)188 PassRefPtr<UString::Rep> Identifier::add(JSGlobalData* globalData, const UChar* s, int length) 209 189 { 210 190 if (!length) { … … 214 194 215 195 UCharBuffer buf = {s, length}; 216 return *JSGlobalData::threadInstance().identifierTable->add<UCharBuffer, UCharBufferTranslator>(buf).first; 217 } 218 219 PassRefPtr<UString::Rep> Identifier::addSlowCase(UString::Rep *r) 196 return *globalData->identifierTable->add<UCharBuffer, UCharBufferTranslator>(buf).first; 197 } 198 199 PassRefPtr<UString::Rep> Identifier::add(ExecState* exec, const UChar* s, int length) 200 { 201 return add(&exec->globalData(), s, length); 202 } 203 204 PassRefPtr<UString::Rep> Identifier::addSlowCase(JSGlobalData* globalData, UString::Rep* r) 220 205 { 221 206 ASSERT(!r->identifierTable); … … 226 211 } 227 212 228 return *JSGlobalData::threadInstance().identifierTable->add(r).first; 213 return *globalData->identifierTable->add(r).first; 214 } 215 216 PassRefPtr<UString::Rep> Identifier::addSlowCase(ExecState* exec, UString::Rep* r) 217 { 218 return addSlowCase(&exec->globalData(), r); 229 219 } 230 220
Note:
See TracChangeset
for help on using the changeset viewer.