Changeset 163794 in webkit


Ignore:
Timestamp:
Feb 10, 2014 10:02:59 AM (10 years ago)
Author:
fpizlo@apple.com
Message:

JSC environment variables should override other mechanisms for setting options
https://bugs.webkit.org/show_bug.cgi?id=128511

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

  • runtime/Options.cpp:

(JSC::Options::setOption):

  • runtime/Options.h:

Source/WebKit2:

  • WebProcess/mac/WebProcessMac.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Location:
trunk/Source
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r163792 r163794  
     12014-02-10  Filip Pizlo  <fpizlo@apple.com>
     2
     3        JSC environment variables should override other mechanisms for setting options
     4        https://bugs.webkit.org/show_bug.cgi?id=128511
     5
     6        Reviewed by Geoffrey Garen.
     7
     8        * runtime/Options.cpp:
     9        (JSC::Options::setOption):
     10        * runtime/Options.h:
     11
    1122014-02-10  Darin Adler  <darin@apple.com>
    213
  • trunk/Source/JavaScriptCore/runtime/Options.cpp

    r163027 r163794  
    7878
    7979template<typename T>
    80 void overrideOptionWithHeuristic(T& variable, const char* name)
     80bool overrideOptionWithHeuristic(T& variable, const char* name)
    8181{
    8282#if !OS(WINCE)
    8383    const char* stringValue = getenv(name);
    8484    if (!stringValue)
    85         return;
     85        return false;
    8686   
    8787    if (parse(stringValue, variable))
    88         return;
     88        return true;
    8989   
    9090    fprintf(stderr, "WARNING: failed to parse %s=%s\n", name, stringValue);
    9191#endif
     92    return false;
    9293}
    9394
     
    237238    // "JSC_".
    238239#define FOR_EACH_OPTION(type_, name_, defaultValue_) \
    239     overrideOptionWithHeuristic(name_(), "JSC_" #name_);
     240    if (overrideOptionWithHeuristic(name_(), "JSC_" #name_)) \
     241        s_options[OPT_##name_].didOverride = true;
    240242    JSC_OPTIONS(FOR_EACH_OPTION)
    241243#undef FOR_EACH_OPTION
     
    274276        if (success) {                                  \
    275277            name_() = value;                            \
     278            s_options[OPT_##name_].didOverride = true;  \
    276279            recomputeDependentOptions();                \
    277280            return true;                                \
  • trunk/Source/JavaScriptCore/runtime/Options.h

    r163789 r163794  
    269269    // Declare accessors for each option:
    270270#define FOR_EACH_OPTION(type_, name_, defaultValue_) \
    271     ALWAYS_INLINE static type_& name_() { return s_options[OPT_##name_].u.type_##Val; }
     271    ALWAYS_INLINE static type_& name_() { return s_options[OPT_##name_].u.type_##Val; } \
     272    static bool name_##WasOverridden() { return s_options[OPT_##name_].didOverride; }
    272273
    273274    JSC_OPTIONS(FOR_EACH_OPTION)
     
    292293            OptionRange optionRangeVal;
    293294        } u;
     295        bool didOverride;
    294296    };
    295297
  • trunk/Source/WebKit2/ChangeLog

    r163781 r163794  
     12014-02-10  Filip Pizlo  <fpizlo@apple.com>
     2
     3        JSC environment variables should override other mechanisms for setting options
     4        https://bugs.webkit.org/show_bug.cgi?id=128511
     5
     6        Reviewed by Geoffrey Garen.
     7
     8        * WebProcess/mac/WebProcessMac.mm:
     9        (WebKit::WebProcess::platformInitializeWebProcess):
     10
    1112014-02-10  Carlos Garcia Campos  <cgarcia@igalia.com>
    212
  • trunk/Source/WebKit2/WebProcess/mac/WebProcessMac.mm

    r163504 r163794  
    174174    Font::setDefaultTypesettingFeatures(parameters.shouldEnableKerningAndLigaturesByDefault ? Kerning | Ligatures : 0);
    175175
    176     JSC::Options::useFTLJIT() = parameters.shouldEnableFTL;
     176    if (!JSC::Options::useFTLJITWasOverridden())
     177        JSC::Options::useFTLJIT() = parameters.shouldEnableFTL;
    177178
    178179    m_compositingRenderServerPort = parameters.acceleratedCompositingPort.port();
Note: See TracChangeset for help on using the changeset viewer.