As requested by @laanwj in #8105, Qt shadowing changes all-in-one.
Maintainers allowed to edit.
this->
stuff and co. But this was not the goal here…
Binaries match
0f1916a25418f7a2dac48f142fb56466e6c2d68197f8f1787b68317c1ec62d281 /tmp/compare/bitcoind.26b370a
1dff7a8d163c1543fe4044b1bc2e70af1d4fa3d3bc2b8b9ded0635b312c7d1534 /tmp/compare/bitcoind.26b370a.stripped
2f1916a25418f7a2dac48f142fb56466e6c2d68197f8f1787b68317c1ec62d281 /tmp/compare/bitcoind.eec927e
3dff7a8d163c1543fe4044b1bc2e70af1d4fa3d3bc2b8b9ded0635b312c7d1534 /tmp/compare/bitcoind.eec927e.stripped
My binary comparator finds differences in the following functions:
00000000000000000 <WalletModel::WalletModel(PlatformStyle const*, CWallet*, OptionsModel*, QObject*)>:
10000000000000000 <WalletView::WalletView(PlatformStyle const*, QWidget*)>:
20000000000000000 <BitcoinGUI::BitcoinGUI(PlatformStyle const*, NetworkStyle const*, QWidget*)>:
30000000000000000 <EditAddressDialog::EditAddressDialog(EditAddressDialog::Mode, QWidget*)>:
40000000000000000 <AskPassphraseDialog::AskPassphraseDialog(AskPassphraseDialog::Mode, QWidget*)>:
50000000000000000 <AddressTableModel::AddressTableModel(CWallet*, WalletModel*)>:
60000000000000000 <SignVerifyMessageDialog::SignVerifyMessageDialog(PlatformStyle const*, QWidget*)>:
70000000000000000 <AddressBookPage::AddressBookPage(PlatformStyle const*, AddressBookPage::Mode, AddressBookPage::Tabs, QWidget*)>:
80000000000000000 <PlatformStyle::PlatformStyle(QString const&, bool, bool, bool)>:
90000000000000000 <SendCoinsEntry::SendCoinsEntry(PlatformStyle const*, QWidget*)>:
100000000000000000 <RPCConsole::RPCConsole(PlatformStyle const*, QWidget*)>:
These are just the constructors, even empty ones. I don’t see why, it may have something to do with Qt’s moc generating different metadata?
ut/code review ACK https://github.com/bitcoin/bitcoin/pull/8793/commits/46b15bb509ac9b4212ed40b12098d1842c878424
Edit: new commit removes two functions from the list
The difference cause by this PR is probably different from the difference caused by #8658.
In this PR, the change in https://github.com/bitcoin/bitcoin/pull/8793/commits/46b15bb509ac9b4212ed40b12098d1842c878424 illustrates the reason. Technically it does the same, but compiler has two places where to get the value used (member variable initialized from the argument or the argument itself).
@MarcoFalke yes we figured it out on IRC: it has to do with name binding, using the argument versus member variable it was assigned to. For example this seems to make the differences in AddressBookPage::AddressBookPage go away: http://www.hastebin.com/jixoyufuxu.patch .
But that’s kind of ugly. So in this case I prefer slightly different executables to larger source code patch that makes the code uglier. If it was consensus code it’d be different.
Labels
GUI
Refactoring