Merge #10809: optim: mark a few classes final
40a0f9f
Enable devirtualization opportunities by using the final specifier (C++11) (practicalswift)9a1675e
optim: mark a few classes final (Cory Fields) Pull request description: Using gcc's ```-Wsuggest-final-types``` and lto, I identified a few easy devirtualization wins: > wallet/wallet.h:651:7: warning: Declaring type 'struct CWallet' final would enable devirtualization of 26 calls [-Wsuggest-final-types] >coins.h:201:7: warning: Declaring type 'struct CCoinsViewCache' final would enable devirtualization of 13 calls [-Wsuggest-final-types] >txdb.h:67:7: warning: Declaring type 'struct CCoinsViewDB' final would enable devirtualization of 5 calls [-Wsuggest-final-types] >zmq/zmqnotificationinterface.h:16:7: warning: Declaring type 'struct CZMQNotificationInterface' final would enable devirtualization of 4 calls [-Wsuggest-final-types] >httpserver.cpp:42:7: warning: Declaring type 'struct HTTPWorkItem' final would enable devirtualization of 2 calls [-Wsuggest-final-types] Tree-SHA512: 2a825fd27121ccabaacff5cde2fc8a50d1b4cc846374606caa2a71b0cd8fcb0d3c9b5b3fd342d944998610e2168048601278f8a3709cc515191a0bb2d98ba782
This commit is contained in:
commit
c559884cac
5 changed files with 6 additions and 6 deletions
|
@ -40,7 +40,7 @@
|
||||||
static const size_t MAX_HEADERS_SIZE = 8192;
|
static const size_t MAX_HEADERS_SIZE = 8192;
|
||||||
|
|
||||||
/** HTTP request work item */
|
/** HTTP request work item */
|
||||||
class HTTPWorkItem : public HTTPClosure
|
class HTTPWorkItem final : public HTTPClosure
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
HTTPWorkItem(std::unique_ptr<HTTPRequest> _req, const std::string &_path, const HTTPRequestHandler& _func):
|
HTTPWorkItem(std::unique_ptr<HTTPRequest> _req, const std::string &_path, const HTTPRequestHandler& _func):
|
||||||
|
|
|
@ -133,7 +133,7 @@ bool ShutdownRequested()
|
||||||
* chainstate, while keeping user interface out of the common library, which is shared
|
* chainstate, while keeping user interface out of the common library, which is shared
|
||||||
* between bitcoind, and bitcoin-qt and non-server tools.
|
* between bitcoind, and bitcoin-qt and non-server tools.
|
||||||
*/
|
*/
|
||||||
class CCoinsViewErrorCatcher : public CCoinsViewBacked
|
class CCoinsViewErrorCatcher final : public CCoinsViewBacked
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit CCoinsViewErrorCatcher(CCoinsView* view) : CCoinsViewBacked(view) {}
|
explicit CCoinsViewErrorCatcher(CCoinsView* view) : CCoinsViewBacked(view) {}
|
||||||
|
|
|
@ -64,7 +64,7 @@ struct CDiskTxPos : public CDiskBlockPos
|
||||||
};
|
};
|
||||||
|
|
||||||
/** CCoinsView backed by the coin database (chainstate/) */
|
/** CCoinsView backed by the coin database (chainstate/) */
|
||||||
class CCoinsViewDB : public CCoinsView
|
class CCoinsViewDB final : public CCoinsView
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
CDBWrapper db;
|
CDBWrapper db;
|
||||||
|
|
|
@ -651,7 +651,7 @@ private:
|
||||||
* A CWallet is an extension of a keystore, which also maintains a set of transactions and balances,
|
* A CWallet is an extension of a keystore, which also maintains a set of transactions and balances,
|
||||||
* and provides the ability to create new transactions.
|
* and provides the ability to create new transactions.
|
||||||
*/
|
*/
|
||||||
class CWallet : public CCryptoKeyStore, public CValidationInterface
|
class CWallet final : public CCryptoKeyStore, public CValidationInterface
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
static std::atomic<bool> fFlushScheduled;
|
static std::atomic<bool> fFlushScheduled;
|
||||||
|
@ -1131,7 +1131,7 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
/** A key allocated from the key pool. */
|
/** A key allocated from the key pool. */
|
||||||
class CReserveKey : public CReserveScript
|
class CReserveKey final : public CReserveScript
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
CWallet* pwallet;
|
CWallet* pwallet;
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
class CBlockIndex;
|
class CBlockIndex;
|
||||||
class CZMQAbstractNotifier;
|
class CZMQAbstractNotifier;
|
||||||
|
|
||||||
class CZMQNotificationInterface : public CValidationInterface
|
class CZMQNotificationInterface final : public CValidationInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~CZMQNotificationInterface();
|
virtual ~CZMQNotificationInterface();
|
||||||
|
|
Loading…
Reference in a new issue