Changeset 127574 in webkit


Ignore:
Timestamp:
Sep 5, 2012 4:04:33 AM (12 years ago)
Author:
commit-queue@webkit.org
Message:

Fix the uses of String::operator+=() for Mac
https://bugs.webkit.org/show_bug.cgi?id=95818

Patch by Benjamin Poulain <bpoulain@apple.com> on 2012-09-05
Reviewed by Dan Bernstein.

Source/JavaScriptCore:

  • jsc.cpp:

(functionJSCStack): Use StringBuilder to create the stack dump, it is faster
and avoid String::operator+=().

  • parser/Parser.h:

(JSC::Parser::updateErrorMessageSpecialCase):
(JSC::Parser::updateErrorMessage):
(JSC::Parser::updateErrorWithNameAndMessage):
Use the String operators (and makeString) to concatenate the strings.

Source/WebCore:

  • bindings/js/JSCSSStyleDeclarationCustom.cpp:

(WebCore::JSCSSStyleDeclaration::putDelegate):
This is a legitimate use of String::append(), it is the only
concatenation in this function.

  • loader/appcache/ManifestParser.cpp:

(WebCore::parseManifest): Ditto.

Location:
trunk/Source
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r127561 r127574  
     12012-09-05  Benjamin Poulain  <bpoulain@apple.com>
     2
     3        Fix the uses of String::operator+=() for Mac
     4        https://bugs.webkit.org/show_bug.cgi?id=95818
     5
     6        Reviewed by Dan Bernstein.
     7
     8        * jsc.cpp:
     9        (functionJSCStack): Use StringBuilder to create the stack dump, it is faster
     10        and avoid String::operator+=().
     11
     12        * parser/Parser.h:
     13        (JSC::Parser::updateErrorMessageSpecialCase):
     14        (JSC::Parser::updateErrorMessage):
     15        (JSC::Parser::updateErrorWithNameAndMessage):
     16        Use the String operators (and makeString) to concatenate the strings.
     17
    1182012-09-05  Gabor Rapcsanyi  <rgabor@webkit.org>
    219
  • trunk/Source/JavaScriptCore/jsc.cpp

    r127349 r127574  
    2525#include "BytecodeGenerator.h"
    2626#include "Completion.h"
    27 #include <wtf/CurrentTime.h>
    2827#include "ExceptionHelpers.h"
    2928#include "InitializeThreading.h"
     
    3433#include "JSLock.h"
    3534#include "JSString.h"
    36 #include <wtf/MainThread.h>
    3735#include "SamplingTool.h"
    3836#include <math.h>
     
    4038#include <stdlib.h>
    4139#include <string.h>
     40#include <wtf/CurrentTime.h>
     41#include <wtf/MainThread.h>
     42#include <wtf/text/StringBuilder.h>
    4243
    4344#if !OS(WINDOWS)
     
    309310EncodedJSValue JSC_HOST_CALL functionJSCStack(ExecState* exec)
    310311{
    311     String trace = "--> Stack trace:\n";
     312    StringBuilder trace;
     313    trace.appendLiteral("--> Stack trace:\n");
     314
    312315    Vector<StackFrame> stackTrace;
    313316    Interpreter::getStackTrace(&exec->globalData(), stackTrace);
     
    316319    for (Vector<StackFrame>::iterator iter = stackTrace.begin(); iter < stackTrace.end(); iter++) {
    317320        StackFrame level = *iter;
    318         trace += String::format("    %i   %s\n", i, level.toString(exec).utf8().data());
     321        trace.append(String::format("    %i   %s\n", i, level.toString(exec).utf8().data()));
    319322        i++;
    320323    }
    321     fprintf(stderr, "%s", trace.utf8().data());
     324    fprintf(stderr, "%s", trace.toString().utf8().data());
    322325    return JSValue::encode(jsUndefined());
    323326}
  • trunk/Source/JavaScriptCore/parser/Parser.h

    r127191 r127574  
    736736    ALWAYS_INLINE void updateErrorMessageSpecialCase(JSTokenType expectedToken)
    737737    {
    738         String errorMessage;
    739738        switch (expectedToken) {
    740739        case RESERVED_IF_STRICT:
    741             errorMessage = "Use of reserved word '";
    742             errorMessage += getToken().impl();
    743             errorMessage += "' in strict mode";
    744             m_errorMessage = errorMessage.impl();
     740            m_errorMessage = "Use of reserved word '" + getToken() + "' in strict mode";
    745741            return;
    746742        case RESERVED:
    747             errorMessage = "Use of reserved word '";
    748             errorMessage += getToken().impl();
    749             errorMessage += "'";
    750             m_errorMessage = errorMessage.impl();
     743            m_errorMessage = "Use of reserved word '" + getToken() + '\'';
    751744            return;
    752745        case NUMBER:
    753             errorMessage = "Unexpected number '";
    754             errorMessage += getToken().impl();
    755             errorMessage += "'";
    756             m_errorMessage = errorMessage.impl();
     746            m_errorMessage = "Unexpected number '" + getToken() + '\'';
    757747            return;
    758748        case IDENT:
    759             errorMessage = "Expected an identifier but found '";
    760             errorMessage += getToken().impl();
    761             errorMessage += "' instead";
    762             m_errorMessage = errorMessage.impl();
     749            m_errorMessage = "Expected an identifier but found '" + getToken() + "' instead";
    763750            return;
    764751        case STRING:
    765             errorMessage = "Unexpected string ";
    766             errorMessage += getToken().impl();
    767             m_errorMessage = errorMessage.impl();
     752            m_errorMessage = "Unexpected string " + getToken();
    768753            return;
    769754        case ERRORTOK:
    770             errorMessage = "Unrecognized token '";
    771             errorMessage += getToken().impl();
    772             errorMessage += "'";
    773             m_errorMessage = errorMessage.impl();
     755            m_errorMessage = "Unrecognized token '" + getToken() + '\'';
    774756            return;
    775757        case EOFTOK: 
    776             m_errorMessage = "Unexpected EOF";
     758            m_errorMessage = ASCIILiteral("Unexpected EOF");
    777759            return;
    778760        case RETURN:
    779             m_errorMessage = "Return statements are only valid inside functions";
     761            m_errorMessage = ASCIILiteral("Return statements are only valid inside functions");
    780762            return;
    781763        default:
    782764            ASSERT_NOT_REACHED();
    783             m_errorMessage = "internal error";
     765            m_errorMessage = ASCIILiteral("internal error");
    784766            return;
    785767        }
     
    807789            else
    808790                updateErrorMessageSpecialCase(expectedToken);
    809         } 
     791        }
    810792    }
    811793   
     
    813795    {
    814796        m_error = true;
    815         String prefix(beforeMsg);
    816         String postfix(afterMsg);
    817         prefix += " '";
    818         prefix += name.impl();
    819         prefix += "' ";
    820         prefix += postfix;
    821         m_errorMessage = prefix.impl();
    822     }
    823    
    824     NEVER_INLINE void updateErrorMessage(const char* msg)
     797        m_errorMessage = makeString(beforeMsg, " '", name, "' ", afterMsg);
     798    }
     799   
     800    NEVER_INLINE void updateErrorMessage(const char* msg)
    825801    {   
    826802        m_error = true;
  • trunk/Source/WebCore/ChangeLog

    r127573 r127574  
     12012-09-05  Benjamin Poulain  <bpoulain@apple.com>
     2
     3        Fix the uses of String::operator+=() for Mac
     4        https://bugs.webkit.org/show_bug.cgi?id=95818
     5
     6        Reviewed by Dan Bernstein.
     7
     8        * bindings/js/JSCSSStyleDeclarationCustom.cpp:
     9        (WebCore::JSCSSStyleDeclaration::putDelegate):
     10        This is a legitimate use of String::append(), it is the only
     11        concatenation in this function.
     12
     13        * loader/appcache/ManifestParser.cpp:
     14        (WebCore::parseManifest): Ditto.
     15
    1162012-09-05  Kenneth Rohde Christiansen  <kenneth@webkit.org>
    217
  • trunk/Source/WebCore/bindings/js/JSCSSStyleDeclarationCustom.cpp

    r127191 r127574  
    359359    String propValue = valueToStringWithNullCheck(exec, value);
    360360    if (propertyInfo.hadPixelOrPosPrefix)
    361         propValue += "px";
     361        propValue.append("px");
    362362
    363363    bool important = false;
  • trunk/Source/WebCore/loader/appcache/ManifestParser.cpp

    r115669 r127574  
    4848    RefPtr<TextResourceDecoder> decoder = TextResourceDecoder::create("text/cache-manifest", "UTF-8");
    4949    String s = decoder->decode(data, length);
    50     s += decoder->flush();
     50    s.append(decoder->flush());
    5151   
    5252    // Look for the magic signature: "^\xFEFF?CACHE MANIFEST[ \t]?" (the BOM is removed by TextResourceDecoder).
Note: See TracChangeset for help on using the changeset viewer.