Changeset 65344 in webkit for trunk/JavaScriptCore


Ignore:
Timestamp:
Aug 13, 2010, 6:28:27 PM (15 years ago)
Author:
[email protected]
Message:

Switch String::/UString::ascii() to return a CString.

Rubber stamped by Sam Weinig.

JavaScriptCore:

(JSC::CodeBlock::dump):

  • bytecode/SamplingTool.cpp:

(JSC::SamplingTool::dump):

  • interpreter/CallFrame.cpp:

(JSC::CallFrame::dumpCaller):

  • jsc.cpp:

(runWithScripts):
(runInteractive):

  • runtime/Identifier.h:

(JSC::Identifier::ascii):

  • runtime/ScopeChain.cpp:

(JSC::ScopeChainNode::print):

  • runtime/UString.cpp:

(JSC::UString::ascii):
(JSC::UString::latin1):

  • runtime/UString.h:
  • wtf/text/StringImpl.cpp:

(WTF::StringImpl::asciiOLD):

  • wtf/text/StringImpl.h:
  • wtf/text/WTFString.cpp:

(WTF::String::ascii):
(WTF::String::latin1):

  • wtf/text/WTFString.h:

WebCore:

  • WebCore.xcodeproj/project.pbxproj:
  • bridge/c/c_class.cpp:

(JSC::Bindings::CClass::methodsNamed):
(JSC::Bindings::CClass::fieldNamed):

  • bridge/jni/jsc/JNIBridgeJSC.cpp:

(JavaField::valueFromInstance):
(JavaField::setValueToInstance):

  • bridge/jni/jsc/JavaInstanceJSC.cpp:

(JavaInstance::invokeMethod):

  • bridge/objc/objc_class.mm:

(JSC::Bindings::ObjcClass::methodsNamed):
(JSC::Bindings::ObjcClass::fieldNamed):

  • bridge/objc/objc_instance.mm:

(ObjcInstance::setValueOfUndefinedField):
(ObjcInstance::getValueOfUndefinedField):

  • loader/icon/IconRecord.cpp:
  • platform/sql/SQLiteDatabase.cpp:
  • platform/sql/SQLiteStatement.cpp:
  • storage/SQLStatement.cpp:

WebKit:

  • WebKit.xcodeproj/project.pbxproj:

WebKit/mac:

  • Plugins/Hosted/ProxyInstance.mm:

(WebKit::ProxyInstance::methodsNamed):
(WebKit::ProxyInstance::fieldNamed):

Location:
trunk/JavaScriptCore
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/ChangeLog

    r65311 r65344  
     12010-08-13  Gavin Barraclough  <[email protected]>
     2
     3        Rubber stamped by Sam Weinig.
     4        Switch String::/UString::ascii() to return a CString.
     5
     6        * JavaScriptCore.exp:
     7        * JavaScriptCore.xcodeproj/project.pbxproj:
     8        * bytecode/CodeBlock.cpp:
     9        (JSC::CodeBlock::dump):
     10        * bytecode/SamplingTool.cpp:
     11        (JSC::SamplingTool::dump):
     12        * interpreter/CallFrame.cpp:
     13        (JSC::CallFrame::dumpCaller):
     14        * jsc.cpp:
     15        (runWithScripts):
     16        (runInteractive):
     17        * runtime/Identifier.h:
     18        (JSC::Identifier::ascii):
     19        * runtime/ScopeChain.cpp:
     20        (JSC::ScopeChainNode::print):
     21        * runtime/UString.cpp:
     22        (JSC::UString::ascii):
     23        (JSC::UString::latin1):
     24        * runtime/UString.h:
     25        * wtf/text/StringImpl.cpp:
     26        (WTF::StringImpl::asciiOLD):
     27        * wtf/text/StringImpl.h:
     28        * wtf/text/WTFString.cpp:
     29        (WTF::String::ascii):
     30        (WTF::String::latin1):
     31        * wtf/text/WTFString.h:
     32
    1332010-08-13  Gabor Loki  <[email protected]>
    234
  • trunk/JavaScriptCore/JavaScriptCore.exp

    r65305 r65344  
    334334__ZN3WTF10StringImpl4findEti
    335335__ZN3WTF10StringImpl5adoptERNS_12StringBufferE
    336 __ZN3WTF10StringImpl5asciiEv
    337336__ZN3WTF10StringImpl5emptyEv
    338337__ZN3WTF10StringImpl5lowerEv
  • trunk/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj

    r65305 r65344  
    23272327                        buildConfigurationList = 149C277108902AFE008A9EFC /* Build configuration list for PBXProject "JavaScriptCore" */;
    23282328                        compatibilityVersion = "Xcode 2.4";
     2329                        developmentRegion = English;
    23292330                        hasScannedForEncodings = 1;
    23302331                        knownRegions = (
  • trunk/JavaScriptCore/bytecode/CodeBlock.cpp

    r65305 r65344  
    354354        size_t i = 0;
    355355        do {
    356             printf("  id%u = %s\n", static_cast<unsigned>(i), m_identifiers[i].ascii());
     356            printf("  id%u = %s\n", static_cast<unsigned>(i), m_identifiers[i].ustring().utf8().data());
    357357            ++i;
    358358        } while (i != m_identifiers.size());
     
    364364        size_t i = 0;
    365365        do {
    366             printf("   k%u = %s\n", registerIndex, valueToSourceString(exec, m_constantRegisters[i].jsValue()).ascii());
     366            printf("   k%u = %s\n", registerIndex, valueToSourceString(exec, m_constantRegisters[i].jsValue()).utf8().data());
    367367            ++i;
    368368            ++registerIndex;
     
    374374        size_t i = 0;
    375375        do {
    376             printf("  re%u = %s\n", static_cast<unsigned>(i), regexpToSourceString(m_rareData->m_regexps[i].get()).ascii());
     376            printf("  re%u = %s\n", static_cast<unsigned>(i), regexpToSourceString(m_rareData->m_regexps[i].get()).utf8().data());
    377377            ++i;
    378378        } while (i < m_rareData->m_regexps.size());
     
    455455                ASSERT(!((i + m_rareData->m_characterSwitchJumpTables[i].min) & ~0xFFFF));
    456456                UChar ch = static_cast<UChar>(entry + m_rareData->m_characterSwitchJumpTables[i].min);
    457                 printf("\t\t\"%s\" => %04d\n", UString(&ch, 1).ascii(), *iter);
     457                printf("\t\t\"%s\" => %04d\n", UString(&ch, 1).utf8().data(), *iter);
    458458        }
    459459            printf("      }\n");
     
    469469            StringJumpTable::StringOffsetTable::const_iterator end = m_rareData->m_stringSwitchJumpTables[i].offsetTable.end();
    470470            for (StringJumpTable::StringOffsetTable::const_iterator iter = m_rareData->m_stringSwitchJumpTables[i].offsetTable.begin(); iter != end; ++iter)
    471                 printf("\t\t\"%s\" => %04d\n", UString(iter->first).ascii(), iter->second.branchOffset);
     471                printf("\t\t\"%s\" => %04d\n", UString(iter->first).utf8().data(), iter->second.branchOffset);
    472472            printf("      }\n");
    473473            ++i;
     
    715715            JSValue scope = JSValue((++it)->u.jsCell);
    716716            int id0 = (++it)->u.operand;
    717             printf("[%4d] resolve_global\t %s, %s, %s\n", location, registerName(exec, r0).data(), valueToSourceString(exec, scope).ascii(), idName(id0, m_identifiers[id0]).data());
     717            printf("[%4d] resolve_global\t %s, %s, %s\n", location, registerName(exec, r0).data(), valueToSourceString(exec, scope).utf8().data(), idName(id0, m_identifiers[id0]).data());
    718718            it += 2;
    719719            break;
     
    724724            int id0 = (++it)->u.operand;
    725725            int depth = it[2].u.operand;
    726             printf("[%4d] resolve_global_dynamic\t %s, %s, %s, %d\n", location, registerName(exec, r0).data(), valueToSourceString(exec, scope).ascii(), idName(id0, m_identifiers[id0]).data(), depth);
     726            printf("[%4d] resolve_global_dynamic\t %s, %s, %s, %d\n", location, registerName(exec, r0).data(), valueToSourceString(exec, scope).utf8().data(), idName(id0, m_identifiers[id0]).data(), depth);
    727727            it += 3;
    728728            break;
     
    746746            JSValue scope = JSValue((++it)->u.jsCell);
    747747            int index = (++it)->u.operand;
    748             printf("[%4d] get_global_var\t %s, %s, %d\n", location, registerName(exec, r0).data(), valueToSourceString(exec, scope).ascii(), index);
     748            printf("[%4d] get_global_var\t %s, %s, %d\n", location, registerName(exec, r0).data(), valueToSourceString(exec, scope).utf8().data(), index);
    749749            break;
    750750        }
     
    753753            int index = (++it)->u.operand;
    754754            int r0 = (++it)->u.operand;
    755             printf("[%4d] put_global_var\t %s, %d, %s\n", location, valueToSourceString(exec, scope).ascii(), index, registerName(exec, r0).data());
     755            printf("[%4d] put_global_var\t %s, %d, %s\n", location, valueToSourceString(exec, scope).utf8().data(), index, registerName(exec, r0).data());
    756756            break;
    757757        }
  • trunk/JavaScriptCore/bytecode/SamplingTool.cpp

    r58911 r65344  
    338338        if (blockPercent >= 1) {
    339339            //Instruction* code = codeBlock->instructions().begin();
    340             printf("#%d: %s:%d: %d / %lld (%.3f%%)\n", i + 1, record->m_executable->sourceURL().ascii(), codeBlock->lineNumberForBytecodeOffset(exec, 0), record->m_sampleCount, m_sampleCount, blockPercent);
     340            printf("#%d: %s:%d: %d / %lld (%.3f%%)\n", i + 1, record->m_executable->sourceURL().utf8().data(), codeBlock->lineNumberForBytecodeOffset(exec, 0), record->m_sampleCount, m_sampleCount, blockPercent);
    341341            if (i < 10) {
    342342                HashMap<unsigned,unsigned> lineCounts;
  • trunk/JavaScriptCore/interpreter/CallFrame.cpp

    r61553 r65344  
    4141   
    4242    interpreter()->retrieveLastCaller(this, signedLineNumber, sourceID, urlString, function);
    43     printf("Callpoint => %s:%d\n", urlString.ascii(), signedLineNumber);
     43    printf("Callpoint => %s:%d\n", urlString.utf8().data(), signedLineNumber);
    4444}
    4545
  • trunk/JavaScriptCore/jsc.cpp

    r65305 r65344  
    393393        if (dump) {
    394394            if (completion.complType() == Throw)
    395                 printf("Exception: %s\n", completion.value().toString(globalObject->globalExec()).ascii());
     395                printf("Exception: %s\n", completion.value().toString(globalObject->globalExec()).utf8().data());
    396396            else
    397                 printf("End: %s\n", completion.value().toString(globalObject->globalExec()).ascii());
     397                printf("End: %s\n", completion.value().toString(globalObject->globalExec()).utf8().data());
    398398        }
    399399
     
    441441#endif
    442442        if (completion.complType() == Throw)
    443             printf("Exception: %s\n", completion.value().toString(globalObject->globalExec()).ascii());
     443            printf("Exception: %s\n", completion.value().toString(globalObject->globalExec()).utf8().data());
    444444        else
    445445            printf("%s\n", completion.value().toString(globalObject->globalExec()).utf8().data());
  • trunk/JavaScriptCore/runtime/Identifier.h

    r65305 r65344  
    5151        int length() const { return m_string.length(); }
    5252       
    53         const char* ascii() const { return m_string.ascii(); }
     53        CString ascii() const { return m_string.ascii(); }
    5454       
    5555        static Identifier from(ExecState* exec, unsigned y);
  • trunk/JavaScriptCore/runtime/ScopeChain.cpp

    r48774 r65344  
    4444        for (PropertyNameArray::const_iterator propIter = propertyNames.begin(); propIter != propEnd; propIter++) {
    4545            Identifier name = *propIter;
    46             fprintf(stderr, "%s, ", name.ascii());
     46            fprintf(stderr, "%s, ", name.ustring().utf8().data());
    4747        }
    4848        fprintf(stderr, "\n");
  • trunk/JavaScriptCore/runtime/UString.cpp

    r65305 r65344  
    205205}
    206206
    207 char* UString::ascii() const
    208 {
    209     static char* asciiBuffer = 0;
    210 
    211     unsigned len = length();
    212     unsigned neededSize = len + 1;
    213     delete[] asciiBuffer;
    214     asciiBuffer = new char[neededSize];
    215 
    216     const UChar* p = characters();
    217     char* q = asciiBuffer;
    218     const UChar* limit = p + len;
    219     while (p != limit) {
    220         *q = static_cast<char>(p[0]);
    221         ++p;
    222         ++q;
    223     }
    224     *q = '\0';
    225 
    226     return asciiBuffer;
    227 }
    228 
    229207static inline bool isInfinity(double number)
    230208{
     
    584562}
    585563
     564CString UString::ascii() const
     565{
     566    // Basic Latin1 (ISO) encoding - Unicode characters 0..255 are
     567    // preserved, characters outside of this range are converted to '?'.
     568
     569    unsigned length = this->length();
     570    const UChar* characters = this->characters();
     571
     572    char* characterBuffer;
     573    CString result = CString::newUninitialized(length, characterBuffer);
     574
     575    for (unsigned i = 0; i < length; ++i) {
     576        UChar ch = characters[i];
     577        characterBuffer[i] = ch && (ch < 0x20 || ch >= 0x7f) ? '?' : ch;
     578    }
     579
     580    return result;
     581}
     582
     583CString UString::latin1() const
     584{
     585    // Basic Latin1 (ISO) encoding - Unicode characters 0..255 are
     586    // preserved, characters outside of this range are converted to '?'.
     587
     588    unsigned length = this->length();
     589    const UChar* characters = this->characters();
     590
     591    char* characterBuffer;
     592    CString result = CString::newUninitialized(length, characterBuffer);
     593
     594    for (unsigned i = 0; i < length; ++i) {
     595        UChar ch = characters[i];
     596        characterBuffer[i] = ch > 0xff ? '?' : ch;
     597    }
     598
     599    return result;
     600}
     601
    586602// Helper to write a three-byte UTF-8 code point to the buffer, caller must check room is available.
    587603static inline void putUTF8Triple(char*& buffer, UChar ch)
  • trunk/JavaScriptCore/runtime/UString.h

    r65305 r65344  
    8888    }
    8989
     90    CString ascii() const;
     91    CString latin1() const;
    9092    CString utf8(bool strict = false) const;
    9193
     
    120122
    121123    UString substr(unsigned pos = 0, unsigned len = 0xFFFFFFFF) const;
    122 
    123     // NOTE: This method should only be used for *debugging* purposes as it
    124     // is neither Unicode safe nor free from side effects nor thread-safe.
    125     char* ascii() const;
    126124
    127125private:
  • trunk/JavaScriptCore/wtf/text/StringImpl.cpp

    r65021 r65344  
    884884}
    885885
    886 Vector<char> StringImpl::ascii()
    887 {
    888     Vector<char> buffer(m_length + 1);
    889     for (unsigned i = 0; i != m_length; ++i) {
    890         UChar c = m_data[i];
    891         if ((c >= 0x20 && c < 0x7F) || c == 0x00)
    892             buffer[i] = static_cast<char>(c);
    893         else
    894             buffer[i] = '?';
    895     }
    896     buffer[m_length] = '\0';
    897     return buffer;
    898 }
    899 
    900886WTF::Unicode::Direction StringImpl::defaultWritingDirection()
    901887{
  • trunk/JavaScriptCore/wtf/text/StringImpl.h

    r65021 r65344  
    307307    PassRefPtr<StringImpl> replace(unsigned index, unsigned len, StringImpl*);
    308308
    309     Vector<char> ascii();
    310 
    311309    WTF::Unicode::Direction defaultWritingDirection();
    312310
  • trunk/JavaScriptCore/wtf/text/WTFString.cpp

    r65305 r65344  
    613613}
    614614
    615 Vector<char> String::ascii() const
    616 {
    617     if (m_impl)
    618         return m_impl->ascii();
    619    
    620     const char* nullMsg = "(null impl)";
    621     Vector<char, 2048> buffer;
    622     for (int i = 0; nullMsg[i]; ++i)
    623         buffer.append(nullMsg[i]);
    624    
    625     buffer.append('\0');
    626     return buffer;
    627 }
    628 
    629 CString String::latin1() const
     615CString String::ascii() const
    630616{
    631617    // Basic Latin1 (ISO) encoding - Unicode characters 0..255 are
     
    640626    for (unsigned i = 0; i < length; ++i) {
    641627        UChar ch = characters[i];
    642         characterBuffer[i] = ch > 255 ? '?' : ch;
     628        characterBuffer[i] = ch && (ch < 0x20 || ch > 0x7f) ? '?' : ch;
     629    }
     630
     631    return result;
     632}
     633
     634CString String::latin1() const
     635{
     636    // Basic Latin1 (ISO) encoding - Unicode characters 0..255 are
     637    // preserved, characters outside of this range are converted to '?'.
     638
     639    unsigned length = this->length();
     640    const UChar* characters = this->characters();
     641
     642    char* characterBuffer;
     643    CString result = CString::newUninitialized(length, characterBuffer);
     644
     645    for (unsigned i = 0; i < length; ++i) {
     646        UChar ch = characters[i];
     647        characterBuffer[i] = ch > 0xff ? '?' : ch;
    643648    }
    644649
  • trunk/JavaScriptCore/wtf/text/WTFString.h

    r65305 r65344  
    126126    }
    127127
     128    CString ascii() const;
    128129    CString latin1() const;
    129130    CString utf8(bool strict = false) const;
     
    278279    operator BString() const;
    279280#endif
    280 
    281     Vector<char> ascii() const;
    282281
    283282    static String fromUTF8(const char*, size_t);
Note: See TracChangeset for help on using the changeset viewer.