Changeset 83407 in webkit
- Timestamp:
- Apr 10, 2011 3:07:33 PM (13 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r83404 r83407 1 2011-04-10 Patrick Gansterer <paroga@webkit.org> 2 3 Reviewed by Darin Adler. 4 5 Remove duplicated code from AtomicString::fromUTF8() 6 https://bugs.webkit.org/show_bug.cgi?id=53711 7 8 * JavaScriptCore.exp: 9 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: 10 * wtf/text/AtomicString.cpp: 11 (WTF::AtomicString::fromUTF8Internal): 12 * wtf/text/AtomicString.h: 13 (WTF::AtomicString::fromUTF8): 14 * wtf/unicode/UTF8.cpp: 15 (WTF::Unicode::calculateStringHashAndLengthFromUTF8): 16 * wtf/unicode/UTF8.h: 17 1 18 2011-04-10 Maciej Stachowiak <mjs@apple.com> 2 19 -
trunk/Source/JavaScriptCore/JavaScriptCore.exp
r83011 r83407 374 374 __ZN3WTF11fastReallocEPvm 375 375 __ZN3WTF12AtomicString11addSlowCaseEPNS_10StringImplE 376 __ZN3WTF12AtomicString16fromUTF8InternalEPKcS2_ 376 377 __ZN3WTF12AtomicString3addEPKc 377 378 __ZN3WTF12AtomicString3addEPKt … … 380 381 __ZN3WTF12AtomicString4findEPKtjj 381 382 __ZN3WTF12AtomicString4initEv 382 __ZN3WTF12AtomicString8fromUTF8EPKc383 __ZN3WTF12AtomicString8fromUTF8EPKcm384 383 __ZN3WTF12createThreadEPFPvS0_ES0_ 385 384 __ZN3WTF12createThreadEPFPvS0_ES0_PKc -
trunk/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def
r83012 r83407 71 71 ?byteSize@SourceProviderCache@JSC@@QBEIXZ 72 72 ?calculateDSTOffset@WTF@@YANNN@Z 73 ?calculateStringHashAndLengthFromUTF8@Unicode@WTF@@YAIPBDAAI1@Z 74 ?calculateStringHashFromUTF8@Unicode@WTF@@YAIPBD0AAI@Z 73 ?calculateStringHashAndLengthFromUTF8@Unicode@WTF@@YAIPBD0AAI1@Z 75 74 ?calculateUTCOffset@WTF@@YAHXZ 76 75 ?calculatedFunctionName@DebuggerCallFrame@JSC@@QBE?AVUString@2@XZ -
trunk/Source/JavaScriptCore/wtf/text/AtomicString.cpp
r82207 r83407 352 352 } 353 353 354 AtomicString AtomicString::fromUTF8(const char* characters, size_t length) 355 { 356 if (!characters) 357 return AtomicString(); 358 359 if (!length) 360 return emptyAtom; 361 354 AtomicString AtomicString::fromUTF8Internal(const char* charactersStart, const char* charactersEnd) 355 { 362 356 HashAndUTF8Characters buffer; 363 buffer.characters = characters; 364 buffer.length = length; 365 buffer.hash = calculateStringHashFromUTF8(characters, characters + length, buffer.utf16Length); 357 buffer.characters = charactersStart; 358 buffer.hash = calculateStringHashAndLengthFromUTF8(charactersStart, charactersEnd, buffer.length, buffer.utf16Length); 366 359 367 360 if (!buffer.hash) 368 return AtomicString();361 return nullAtom; 369 362 370 363 AtomicString atomicString; … … 373 366 } 374 367 375 AtomicString AtomicString::fromUTF8(const char* characters)376 {377 if (!characters)378 return AtomicString();379 380 if (!*characters)381 return emptyAtom;382 383 HashAndUTF8Characters buffer;384 buffer.characters = characters;385 buffer.hash = calculateStringHashAndLengthFromUTF8(characters, buffer.length, buffer.utf16Length);386 387 if (!buffer.hash)388 return AtomicString();389 390 AtomicString atomicString;391 atomicString.m_string = addToStringTable<HashAndUTF8Characters, HashAndUTF8CharactersTranslator>(buffer);392 return atomicString;393 }394 395 368 } // namespace WTF -
trunk/Source/JavaScriptCore/wtf/text/AtomicString.h
r79434 r83407 128 128 } 129 129 static PassRefPtr<StringImpl> addSlowCase(StringImpl*); 130 static AtomicString fromUTF8Internal(const char*, const char*); 130 131 }; 131 132 … … 155 156 // These are only usable from the main thread. 156 157 #ifndef ATOMICSTRING_HIDE_GLOBALS 157 extern const JS_EXPORTDATA AtomicString nullAtom; 158 extern const JS_EXPORTDATA AtomicString emptyAtom; 159 extern const JS_EXPORTDATA AtomicString textAtom; 160 extern const JS_EXPORTDATA AtomicString commentAtom; 161 extern const JS_EXPORTDATA AtomicString starAtom; 162 extern const JS_EXPORTDATA AtomicString xmlAtom; 163 extern const JS_EXPORTDATA AtomicString xmlnsAtom; 164 #endif 165 166 // AtomicStringHash is the default hash for AtomicString 167 template<typename T> struct DefaultHash; 168 template<> struct DefaultHash<AtomicString> { 169 typedef AtomicStringHash Hash; 170 }; 158 extern const JS_EXPORTDATA AtomicString nullAtom; 159 extern const JS_EXPORTDATA AtomicString emptyAtom; 160 extern const JS_EXPORTDATA AtomicString textAtom; 161 extern const JS_EXPORTDATA AtomicString commentAtom; 162 extern const JS_EXPORTDATA AtomicString starAtom; 163 extern const JS_EXPORTDATA AtomicString xmlAtom; 164 extern const JS_EXPORTDATA AtomicString xmlnsAtom; 165 166 inline AtomicString AtomicString::fromUTF8(const char* characters, size_t length) 167 { 168 if (!characters) 169 return nullAtom; 170 if (!length) 171 return emptyAtom; 172 return fromUTF8Internal(characters, characters + length); 173 } 174 175 inline AtomicString AtomicString::fromUTF8(const char* characters) 176 { 177 if (!characters) 178 return nullAtom; 179 if (!*characters) 180 return emptyAtom; 181 return fromUTF8Internal(characters, 0); 182 } 183 #endif 184 185 // AtomicStringHash is the default hash for AtomicString 186 template<typename T> struct DefaultHash; 187 template<> struct DefaultHash<AtomicString> { 188 typedef AtomicStringHash Hash; 189 }; 171 190 172 191 } // namespace WTF -
trunk/Source/JavaScriptCore/wtf/unicode/UTF8.cpp
r81548 r83407 315 315 } 316 316 317 static inline unsigned calculateStringHashAndLengthFromUTF8Internal(const char* data, const char* dataEnd, unsigned& dataLength, unsigned& utf16Length)317 unsigned calculateStringHashAndLengthFromUTF8(const char* data, const char* dataEnd, unsigned& dataLength, unsigned& utf16Length) 318 318 { 319 319 if (!data) … … 364 364 365 365 return stringHasher.hash(); 366 }367 368 unsigned calculateStringHashFromUTF8(const char* data, const char* dataEnd, unsigned& utf16Length)369 {370 unsigned dataLength;371 return calculateStringHashAndLengthFromUTF8Internal(data, dataEnd, dataLength, utf16Length);372 }373 374 unsigned calculateStringHashAndLengthFromUTF8(const char* data, unsigned& dataLength, unsigned& utf16Length)375 {376 return calculateStringHashAndLengthFromUTF8Internal(data, 0, dataLength, utf16Length);377 366 } 378 367 -
trunk/Source/JavaScriptCore/wtf/unicode/UTF8.h
r77491 r83407 71 71 char** targetStart, char* targetEnd, bool strict = true); 72 72 73 unsigned calculateStringHashFromUTF8(const char* data, const char* dataEnd, unsigned& utf16Length); 74 unsigned calculateStringHashAndLengthFromUTF8(const char* data, unsigned& dataLength, unsigned& utf16Length); 73 unsigned calculateStringHashAndLengthFromUTF8(const char* data, const char* dataEnd, unsigned& dataLength, unsigned& utf16Length); 75 74 76 75 bool equalUTF16WithUTF8(const UChar* a, const UChar* aEnd, const char* b, const char* bEnd);
Note: See TracChangeset
for help on using the changeset viewer.