diff --git a/src/init.h b/src/init.h --- a/src/init.h +++ b/src/init.h @@ -17,7 +17,7 @@ class RPCServer; class WalletInitInterface; -extern WalletInitInterface *const g_wallet_init_interface; +extern const WalletInitInterface &g_wallet_init_interface; namespace boost { class thread_group; diff --git a/src/init.cpp b/src/init.cpp --- a/src/init.cpp +++ b/src/init.cpp @@ -89,8 +89,7 @@ void Close() const override {} }; -static DummyWalletInit g_dummy_wallet_init; -WalletInitInterface *const g_wallet_init_interface = &g_dummy_wallet_init; +const WalletInitInterface &g_wallet_init_interface = DummyWalletInit(); #endif #if ENABLE_ZMQ @@ -202,7 +201,7 @@ StopREST(); StopRPC(); StopHTTPServer(); - g_wallet_init_interface->Flush(); + g_wallet_init_interface.Flush(); StopMapPort(); // Because these depend on each-other, we make sure that neither can be @@ -254,7 +253,7 @@ pcoinsdbview.reset(); pblocktree.reset(); } - g_wallet_init_interface->Stop(); + g_wallet_init_interface.Stop(); #if ENABLE_ZMQ if (pzmqNotificationInterface) { @@ -274,7 +273,7 @@ UnregisterAllValidationInterfaces(); GetMainSignals().UnregisterBackgroundSignalScheduler(); GetMainSignals().UnregisterWithMempoolSignals(g_mempool); - g_wallet_init_interface->Close(); + g_wallet_init_interface.Close(); globalVerifyHandle.reset(); ECC_Stop(); LogPrintf("%s: done\n", __func__); @@ -628,7 +627,7 @@ "MiB per 24h), 0 = no limit (default: %d)"), DEFAULT_MAX_UPLOAD_TARGET)); - strUsage += g_wallet_init_interface->GetHelpString(showDebug); + strUsage += g_wallet_init_interface.GetHelpString(showDebug); #if ENABLE_ZMQ strUsage += HelpMessageGroup(_("ZeroMQ notification options:")); @@ -1670,7 +1669,7 @@ } nBytesPerSigOp = gArgs.GetArg("-bytespersigop", nBytesPerSigOp); - if (!g_wallet_init_interface->ParameterInteraction()) { + if (!g_wallet_init_interface.ParameterInteraction()) { return false; } @@ -1822,7 +1821,7 @@ * available in the GUI RPC console even if external calls are disabled. */ RegisterAllRPCCommands(config, rpcServer, tableRPC); - g_wallet_init_interface->RegisterRPC(tableRPC); + g_wallet_init_interface.RegisterRPC(tableRPC); /** * Start the RPC server. It will be started in "warmup" mode and not @@ -1839,7 +1838,7 @@ } // Step 5: verify wallet database integrity - if (!g_wallet_init_interface->Verify(chainparams)) { + if (!g_wallet_init_interface.Verify(chainparams)) { return false; } @@ -2238,7 +2237,7 @@ gArgs.GetBoolArg("-usecashaddr", GetAdjustedTime() > 1515900000)); // Step 8: load wallet - if (!g_wallet_init_interface->Open(chainparams)) { + if (!g_wallet_init_interface.Open(chainparams)) { return false; } @@ -2395,7 +2394,7 @@ SetRPCWarmupFinished(); uiInterface.InitMessage(_("Done loading")); - g_wallet_init_interface->Start(scheduler); + g_wallet_init_interface.Start(scheduler); return true; } diff --git a/src/wallet/init.cpp b/src/wallet/init.cpp --- a/src/wallet/init.cpp +++ b/src/wallet/init.cpp @@ -50,8 +50,7 @@ void Close() const override; }; -static WalletInit g_wallet_init; -WalletInitInterface *const g_wallet_init_interface = &g_wallet_init; +const WalletInitInterface &g_wallet_init_interface = WalletInit(); std::string WalletInit::GetHelpString(bool showDebug) const { std::string strUsage = HelpMessageGroup(_("Wallet options:"));