Changeset 83407 in webkit


Ignore:
Timestamp:
Apr 10, 2011 3:07:33 PM (13 years ago)
Author:
Patrick Gansterer
Message:

2011-04-10 Patrick Gansterer <Patrick Gansterer>

Reviewed by Darin Adler.

Remove duplicated code from AtomicString::fromUTF8()
https://bugs.webkit.org/show_bug.cgi?id=53711

  • JavaScriptCore.exp:
  • JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
  • wtf/text/AtomicString.cpp: (WTF::AtomicString::fromUTF8Internal):
  • wtf/text/AtomicString.h: (WTF::AtomicString::fromUTF8):
  • wtf/unicode/UTF8.cpp: (WTF::Unicode::calculateStringHashAndLengthFromUTF8):
  • wtf/unicode/UTF8.h:
Location:
trunk/Source/JavaScriptCore
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r83404 r83407  
     12011-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
    1182011-04-10  Maciej Stachowiak  <mjs@apple.com>
    219
  • trunk/Source/JavaScriptCore/JavaScriptCore.exp

    r83011 r83407  
    374374__ZN3WTF11fastReallocEPvm
    375375__ZN3WTF12AtomicString11addSlowCaseEPNS_10StringImplE
     376__ZN3WTF12AtomicString16fromUTF8InternalEPKcS2_
    376377__ZN3WTF12AtomicString3addEPKc
    377378__ZN3WTF12AtomicString3addEPKt
     
    380381__ZN3WTF12AtomicString4findEPKtjj
    381382__ZN3WTF12AtomicString4initEv
    382 __ZN3WTF12AtomicString8fromUTF8EPKc
    383 __ZN3WTF12AtomicString8fromUTF8EPKcm
    384383__ZN3WTF12createThreadEPFPvS0_ES0_
    385384__ZN3WTF12createThreadEPFPvS0_ES0_PKc
  • trunk/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def

    r83012 r83407  
    7171    ?byteSize@SourceProviderCache@JSC@@QBEIXZ
    7272    ?calculateDSTOffset@WTF@@YANNN@Z
    73     ?calculateStringHashAndLengthFromUTF8@Unicode@WTF@@YAIPBDAAI1@Z
    74     ?calculateStringHashFromUTF8@Unicode@WTF@@YAIPBD0AAI@Z
     73    ?calculateStringHashAndLengthFromUTF8@Unicode@WTF@@YAIPBD0AAI1@Z
    7574    ?calculateUTCOffset@WTF@@YAHXZ
    7675    ?calculatedFunctionName@DebuggerCallFrame@JSC@@QBE?AVUString@2@XZ
  • trunk/Source/JavaScriptCore/wtf/text/AtomicString.cpp

    r82207 r83407  
    352352}
    353353
    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 
     354AtomicString AtomicString::fromUTF8Internal(const char* charactersStart, const char* charactersEnd)
     355{
    362356    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);
    366359
    367360    if (!buffer.hash)
    368         return AtomicString();
     361        return nullAtom;
    369362
    370363    AtomicString atomicString;
     
    373366}
    374367
    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 
    395368} // namespace WTF
  • trunk/Source/JavaScriptCore/wtf/text/AtomicString.h

    r79434 r83407  
    128128    }
    129129    static PassRefPtr<StringImpl> addSlowCase(StringImpl*);
     130    static AtomicString fromUTF8Internal(const char*, const char*);
    130131};
    131132
     
    155156// These are only usable from the main thread.
    156157#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     };
     158extern const JS_EXPORTDATA AtomicString nullAtom;
     159extern const JS_EXPORTDATA AtomicString emptyAtom;
     160extern const JS_EXPORTDATA AtomicString textAtom;
     161extern const JS_EXPORTDATA AtomicString commentAtom;
     162extern const JS_EXPORTDATA AtomicString starAtom;
     163extern const JS_EXPORTDATA AtomicString xmlAtom;
     164extern const JS_EXPORTDATA AtomicString xmlnsAtom;
     165
     166inline 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
     175inline 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
     186template<typename T> struct DefaultHash;
     187template<> struct DefaultHash<AtomicString> {
     188    typedef AtomicStringHash Hash;
     189};
    171190
    172191} // namespace WTF
  • trunk/Source/JavaScriptCore/wtf/unicode/UTF8.cpp

    r81548 r83407  
    315315}
    316316
    317 static inline unsigned calculateStringHashAndLengthFromUTF8Internal(const char* data, const char* dataEnd, unsigned& dataLength, unsigned& utf16Length)
     317unsigned calculateStringHashAndLengthFromUTF8(const char* data, const char* dataEnd, unsigned& dataLength, unsigned& utf16Length)
    318318{
    319319    if (!data)
     
    364364
    365365    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);
    377366}
    378367
  • trunk/Source/JavaScriptCore/wtf/unicode/UTF8.h

    r77491 r83407  
    7171                    char** targetStart, char* targetEnd, bool strict = true);
    7272
    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);
    7574
    7675    bool equalUTF16WithUTF8(const UChar* a, const UChar* aEnd, const char* b, const char* bEnd);
Note: See TracChangeset for help on using the changeset viewer.