[webkit-changes] [WebKit/WebKit] 6d72ef: Clean up some options initialization workflow.
EWS
noreply at github.com
Fri Dec 2 16:29:36 PST 2022
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 6d72ef261e4ac4407332fa74197a5c58a554904c
https://github.com/WebKit/WebKit/commit/6d72ef261e4ac4407332fa74197a5c58a554904c
Author: Mark Lam <mark.lam at apple.com>
Date: 2022-12-02 (Fri, 02 Dec 2022)
Changed paths:
M Source/JavaScriptCore/jit/ExecutableAllocator.cpp
M Source/JavaScriptCore/jit/ExecutableAllocator.h
M Source/JavaScriptCore/jsc.cpp
M Source/JavaScriptCore/runtime/InitializeThreading.cpp
M Source/JavaScriptCore/runtime/Options.cpp
M Source/JavaScriptCore/runtime/Options.h
M Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h
Log Message:
-----------
Clean up some options initialization workflow.
https://bugs.webkit.org/show_bug.cgi?id=248682
<rdar://problem/102916238>
Reviewed by Justin Michaud.
We always call correctOptions() before recomputeDependentOptions(), and often call dumpOptionsIfNeeded()
and ensureOptionsAreCoherent() after.
This patch makes things more consistent by doing the following:
1. Rename recomputeDependentOptions() to notifyOptionsChanged().
2. Rename ensureOptionsAreCoherent() to assertOptionsAreCoherent(), because "ensure" implies that the
function will make them coherent. Instead, the function asserts that they are coherent.
3. Move the body of correctOptions() (which is a tiny function) into the top of notifyOptionsChanged().
notifyOptionsChanged() itself fixes up (i.e. corrects) options. Hence, correctOptions() is
redundant.
4. Call dumpOptionsIfNeeded() and assertOptionsAreCoherent() at the end of notifyOptionsChanged()
instead of from clients.
5. Make sure clients call notifyOptionsChanged() after changing options.
Additionally:
6. Disable more JIT related options in disableAllJITOptions().
7. Refactor notifyOptionsChanged() to only process JIT related options in the JIT enabled path.
The JIT disable path is handled by disableAllJITOptions().
8. Rename ExecutableAllocator:: setJITEnabled() to ExecutableAllocator::disableJIT(). Disabling JIT in
this function was always a one way street, and there's no going back. This rename makes it clear and
explicit.
* Source/JavaScriptCore/jit/ExecutableAllocator.cpp:
(JSC::ExecutableAllocator::disableJIT):
(JSC::ExecutableAllocator::setJITEnabled): Deleted.
* Source/JavaScriptCore/jit/ExecutableAllocator.h:
(JSC::ExecutableAllocatorBase::disableJIT):
(JSC::ExecutableAllocatorBase::setJITEnabled): Deleted.
* Source/JavaScriptCore/jsc.cpp:
(CommandLine::parseArguments):
* Source/JavaScriptCore/runtime/InitializeThreading.cpp:
(JSC::initialize):
* Source/JavaScriptCore/runtime/Options.cpp:
(JSC::disableAllJITOptions):
(JSC::Options::dumpOptionsIfNeeded):
(JSC::Options::notifyOptionsChanged):
(JSC::Options::initialize):
(JSC::Options::setOptions):
(JSC::Options::setOptionWithoutAlias):
(JSC::Options::assertOptionsAreCoherent):
(JSC::correctOptions): Deleted.
(JSC::Options::recomputeDependentOptions): Deleted.
(JSC::Options::ensureOptionsAreCoherent): Deleted.
* Source/JavaScriptCore/runtime/Options.h:
* Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:
(WebKit::XPCServiceInitializer):
Canonical link: https://commits.webkit.org/257311@main
More information about the webkit-changes
mailing list