src: workaround MSVC compiler bug
PR-URL: https://github.com/nodejs/node/pull/25596 Fixes: https://github.com/nodejs/node/issues/25593 Refs: https://developercommunity.visualstudio.com/content/problem/432157/dynamic-initializers-out-of-order.html Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
This commit is contained in:
parent
ca9e24e8b4
commit
e3c4b670a4
@ -107,6 +107,20 @@ void EnvironmentOptions::CheckOptions(std::vector<std::string>* errors) {
|
|||||||
|
|
||||||
namespace options_parser {
|
namespace options_parser {
|
||||||
|
|
||||||
|
// Explicitly access the singelton instances in their dependancy order.
|
||||||
|
// This was moved here to workaround a compiler bug.
|
||||||
|
// Refs: https://github.com/nodejs/node/issues/25593
|
||||||
|
|
||||||
|
#if HAVE_INSPECTOR
|
||||||
|
const DebugOptionsParser DebugOptionsParser::instance;
|
||||||
|
#endif // HAVE_INSPECTOR
|
||||||
|
|
||||||
|
const EnvironmentOptionsParser EnvironmentOptionsParser::instance;
|
||||||
|
|
||||||
|
const PerIsolateOptionsParser PerIsolateOptionsParser::instance;
|
||||||
|
|
||||||
|
const PerProcessOptionsParser PerProcessOptionsParser::instance;
|
||||||
|
|
||||||
// XXX: If you add an option here, please also add it to doc/node.1 and
|
// XXX: If you add an option here, please also add it to doc/node.1 and
|
||||||
// doc/api/cli.md
|
// doc/api/cli.md
|
||||||
// TODO(addaleax): Make that unnecessary.
|
// TODO(addaleax): Make that unnecessary.
|
||||||
@ -143,10 +157,6 @@ DebugOptionsParser::DebugOptionsParser() {
|
|||||||
AddAlias("--debug-brk=", { "--inspect-port", "--debug-brk" });
|
AddAlias("--debug-brk=", { "--inspect-port", "--debug-brk" });
|
||||||
}
|
}
|
||||||
|
|
||||||
#if HAVE_INSPECTOR
|
|
||||||
const DebugOptionsParser DebugOptionsParser::instance;
|
|
||||||
#endif // HAVE_INSPECTOR
|
|
||||||
|
|
||||||
EnvironmentOptionsParser::EnvironmentOptionsParser() {
|
EnvironmentOptionsParser::EnvironmentOptionsParser() {
|
||||||
AddOption("--experimental-modules",
|
AddOption("--experimental-modules",
|
||||||
"experimental ES Module support and caching modules",
|
"experimental ES Module support and caching modules",
|
||||||
@ -282,8 +292,6 @@ EnvironmentOptionsParser::EnvironmentOptionsParser() {
|
|||||||
#endif // HAVE_INSPECTOR
|
#endif // HAVE_INSPECTOR
|
||||||
}
|
}
|
||||||
|
|
||||||
const EnvironmentOptionsParser EnvironmentOptionsParser::instance;
|
|
||||||
|
|
||||||
PerIsolateOptionsParser::PerIsolateOptionsParser() {
|
PerIsolateOptionsParser::PerIsolateOptionsParser() {
|
||||||
AddOption("--track-heap-objects",
|
AddOption("--track-heap-objects",
|
||||||
"track heap object allocations for heap snapshots",
|
"track heap object allocations for heap snapshots",
|
||||||
@ -341,8 +349,6 @@ PerIsolateOptionsParser::PerIsolateOptionsParser() {
|
|||||||
&PerIsolateOptions::get_per_env_options);
|
&PerIsolateOptions::get_per_env_options);
|
||||||
}
|
}
|
||||||
|
|
||||||
const PerIsolateOptionsParser PerIsolateOptionsParser::instance;
|
|
||||||
|
|
||||||
PerProcessOptionsParser::PerProcessOptionsParser() {
|
PerProcessOptionsParser::PerProcessOptionsParser() {
|
||||||
AddOption("--title",
|
AddOption("--title",
|
||||||
"the process title to use on startup",
|
"the process title to use on startup",
|
||||||
@ -449,8 +455,6 @@ PerProcessOptionsParser::PerProcessOptionsParser() {
|
|||||||
&PerProcessOptions::get_per_isolate_options);
|
&PerProcessOptions::get_per_isolate_options);
|
||||||
}
|
}
|
||||||
|
|
||||||
const PerProcessOptionsParser PerProcessOptionsParser::instance;
|
|
||||||
|
|
||||||
inline std::string RemoveBrackets(const std::string& host) {
|
inline std::string RemoveBrackets(const std::string& host) {
|
||||||
if (!host.empty() && host.front() == '[' && host.back() == ']')
|
if (!host.empty() && host.front() == '[' && host.back() == ']')
|
||||||
return host.substr(1, host.size() - 2);
|
return host.substr(1, host.size() - 2);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user