Each symbol below has no references anywhere in the tree (src/, contrib/,
tests/), and none on the in-flight FCMP++ (fcmp++-stage-new) or CARROT
(carrot_impl) integration branches; the full build still links cleanly.
Per-symbol history is given so the "why is this unused" is auditable (hashes
are ancestors of HEAD).
command_line:
- parse_command_line template: boost wrapper used by the connectivity tool and
wallet from the 2014 import; the last caller was removed in b8a08f199 (2017,
"wallet: fix --log-file not working"). Not boost's own
boost::program_options::parse_command_line, a different function still in use.
download:
- download_finished / download_error: dead on arrival - added 63f0e074e (2017,
"download: async API") but never wired to any caller.
perf_timer:
- set_performance_timer_log_level: dead on arrival - added 74dfdb0b3 (2016),
never called. It was the only writer of performance_timer_log_level, which is
therefore never reassigned and stays at its default (el::Level::Info).
Note: the unused PERF_TIMER_L / PERF_TIMER_UNIT_L macros are deliberately left
in place - the FCMP++ wallet-scanning work (fcmp++-stage-new, wallet2.cpp) uses
PERF_TIMER_L, so removing them would break that branch on rebase.
The MDB_val_copy<cryptonote::blobdata> and MDB_val_copy<const char*>
specializations have no references anywhere in the tree (src/, contrib/,
tests/); the full build still links cleanly.
They were real helpers that copied block/tx blobs and the "version" key into
LMDB from 2015 (3fcb8daf6 / f7e99047e). All instantiations were removed in
99fbe1008 (2018, "db_lmdb: save some string copies for readonly db keys/
values"), which writes blobs directly and points readonly MDB_vals at string
literals (zero-copy). Every remaining MDB_val_copy<> call site uses the
uint64_t/uint32_t/uint8_t primary template; these two specializations have sat
unused since.
330062a Optimized handle_notify_new_transactions's duplicate tx check - Check sha256 digests instead of full blobs (much less memory used) - Replace `find->insert` sequence with a single `insert` - 2x fewer hashset accesses - Preallocate the required size for the hashset (no full-table rehashes) (SChernykh)
ACKs: selsta, j-berman
- Check sha256 digests instead of full blobs (much less memory used)
- Replace `find->insert` sequence with a single `insert` - 2x fewer hashset accesses
- Preallocate the required size for the hashset (no full-table rehashes)
parse_unsigned_tx_from_str() and parse_tx_from_str() strip the magic,
then read the version byte and call s.substr(1) without checking a
version byte follows. A blob equal to just the magic leaves an empty
remainder, so s.substr(1) throws std::out_of_range instead of the
function returning false. Require magic + a version byte first.