diff --git a/src/libcmd/include/nix/cmd/legacy.hh b/src/libcmd/include/nix/cmd/legacy.hh index 357500a4d..0c375a7d2 100644 --- a/src/libcmd/include/nix/cmd/legacy.hh +++ b/src/libcmd/include/nix/cmd/legacy.hh @@ -12,12 +12,15 @@ typedef std::function MainFunction; struct RegisterLegacyCommand { typedef std::map Commands; - static Commands * commands; + + static Commands & commands() { + static Commands commands; + return commands; + } RegisterLegacyCommand(const std::string & name, MainFunction fun) { - if (!commands) commands = new Commands; - (*commands)[name] = fun; + commands()[name] = fun; } }; diff --git a/src/libcmd/legacy.cc b/src/libcmd/legacy.cc deleted file mode 100644 index 69b066831..000000000 --- a/src/libcmd/legacy.cc +++ /dev/null @@ -1,7 +0,0 @@ -#include "nix/cmd/legacy.hh" - -namespace nix { - -RegisterLegacyCommand::Commands * RegisterLegacyCommand::commands = 0; - -} diff --git a/src/libcmd/meson.build b/src/libcmd/meson.build index 32f44697d..216d4df9c 100644 --- a/src/libcmd/meson.build +++ b/src/libcmd/meson.build @@ -71,7 +71,6 @@ sources = files( 'installable-flake.cc', 'installable-value.cc', 'installables.cc', - 'legacy.cc', 'markdown.cc', 'misc-store-flags.cc', 'network-proxy.cc', diff --git a/src/nix/main.cc b/src/nix/main.cc index f229ba2a4..eff2634e2 100644 --- a/src/nix/main.cc +++ b/src/nix/main.cc @@ -373,7 +373,7 @@ void mainWrapped(int argc, char * * argv) } { - auto legacy = (*RegisterLegacyCommand::commands)[programName]; + auto legacy = RegisterLegacyCommand::commands()[programName]; if (legacy) return legacy(argc, argv); }