Page MenuHomePhabricator

Backport core PR 10809: optim: mark a few classes final
Closed, ResolvedPublic

Description

Merge: 7ee6c434c 40a0f9fb9
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Mon Aug 21 18:25:42 2017 +0200

    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