0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-02-05 10:17:30 -05:00
bitcoin-bitcoin-core/src
Martin Leitner-Ankerl 11e7908484
prevector: only allow trivially copyable types
The prevector implementation currently can't be used with types that are
not trivially copyable, due to the use of memmove. Trivially copyable
implies that it is trivially destructible, see
https://eel.is/c++draft/class.prop#1.3

That means that the checks for std::is_trivially_destructible are not
necessary, and in fact where used it wouldn't be enough. E.g. in
`erase(iterator, iterator)` the elements in range first-last are destructed,
but it does not destruct elements left after `memmove`.

This commit removes the checks for `std::is_trivially_destructible`
and instead adds a `static_assert(std::is_trivially_copyable_v<T>);` to
make sure `prevector` is only used with supported types.
2022-04-24 20:02:04 +02:00
..
bench Merge bitcoin/bitcoin#22910: net: Encapsulate asmap in NetGroupManager 2022-04-22 14:43:14 +01:00
common refactor: Fixup uint64_t-cast style in touched line 2022-02-01 11:19:18 +01:00
compat compat: remove strnlen back-compat code 2022-03-29 10:15:33 +01:00
config
consensus Merge bitcoin/bitcoin#23536: Enforce Taproot script flags whenever WITNESS is set 2022-03-25 14:11:18 +01:00
crc32c Update crc32c subtree 2021-09-29 14:10:29 +02:00
crypto refactor: Use [[maybe_unused]] attribute 2022-04-05 13:53:09 +02:00
index refactor: more const annotations for uses of CBlockIndex* 2022-03-09 14:32:47 -05:00
init Use GetPathArg where possible 2022-03-02 12:09:27 +01:00
interfaces Merge bitcoin/bitcoin#22834: net: respect -onlynet= when making outbound connections 2022-03-01 18:32:01 +01:00
ipc refactor: Block unsafe fs::path std::string conversion calls 2021-10-05 11:10:47 -04:00
leveldb build: Minor leveldb subtree update 2022-03-02 15:25:48 +01:00
logging util, refactor: Add UNIQUE_NAME helper macro 2022-02-16 14:59:20 +02:00
minisketch Update minisketch subtree to latest upstream 2022-02-04 22:47:49 +08:00
node Merge bitcoin/bitcoin#22910: net: Encapsulate asmap in NetGroupManager 2022-04-22 14:43:14 +01:00
policy Remove outdated comment on CFeeRate 2022-02-14 16:01:26 -05:00
primitives Merge bitcoin/bitcoin#24350: Primitives: Correct CTransaction deserialization docstring 2022-02-19 09:35:10 +01:00
qt Merge bitcoin-core/gui#587: refactor: Replace GUIUtil::ObjectInvoke() with QMetaObject::invokeMethod() 2022-04-22 18:51:37 +02:00
rpc Merge bitcoin/bitcoin#24812: util/check: Add CHECK_NONFATAL identity function and NONFATAL_UNREACHABLE macro 2022-04-24 12:00:05 +02:00
script miniscript: the 'd:' wrapper must not be 'u' 2022-04-18 16:03:29 +02:00
secp256k1 Update secp256k1 subtree to latest upstream master 2022-04-06 20:20:30 +01:00
support refactor: remove macOS MAP_ANONYMOUS work around 2022-04-03 13:04:29 +01:00
test Merge bitcoin/bitcoin#22910: net: Encapsulate asmap in NetGroupManager 2022-04-22 14:43:14 +01:00
univalue Update univalue subtree to latest upstream 2021-10-11 20:45:56 +08:00
util Merge bitcoin/bitcoin#24812: util/check: Add CHECK_NONFATAL identity function and NONFATAL_UNREACHABLE macro 2022-04-24 12:00:05 +02:00
wallet Merge bitcoin/bitcoin#24812: util/check: Add CHECK_NONFATAL identity function and NONFATAL_UNREACHABLE macro 2022-04-24 12:00:05 +02:00
zmq zmq: Fix implicit-integer-sign-change 2022-01-31 16:53:12 +01:00
.clang-format Use c++17 in clang-format 2021-11-12 11:46:34 +01:00
.clang-tidy Enable clang-tidy bugprone-argument-comment and fix violations 2021-09-07 09:11:10 +02:00
addrdb.cpp Merge bitcoin/bitcoin#22910: net: Encapsulate asmap in NetGroupManager 2022-04-22 14:43:14 +01:00
addrdb.h [net] Move asmap into NetGroupManager 2022-04-20 14:29:29 +01:00
addrman.cpp [netgroupman] Move asmap checksum calculation to NetGroupManager 2022-04-20 14:35:53 +01:00
addrman.h [net] Move asmap into NetGroupManager 2022-04-20 14:29:29 +01:00
addrman_impl.h [netgroupman] Add GetMappedAS() and GetGroup() 2022-04-20 14:35:52 +01:00
arith_uint256.cpp Merge bitcoin/bitcoin#24077: util: Make base_uint::GetHex() and base_uint::SetHex() not depend on uint256 2022-04-14 07:15:22 +02:00
arith_uint256.h Remove duplicate static_asserts 2022-04-14 19:26:22 +02:00
attributes.h
banman.cpp Fix race condition for SetBannedSetDirty() calls 2022-01-28 19:27:25 +00:00
banman.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
base58.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
base58.h
bech32.cpp Avoid implicit-integer-sign-change in bech32.cpp 2022-02-25 09:43:54 +01:00
bech32.h Make Bech32 LocateErrors return error list rather than using out-arg 2021-12-06 14:17:41 +13:00
bitcoin-chainstate.cpp refactor: fix clang-tidy named args usage 2022-04-04 09:01:19 +01:00
bitcoin-cli-res.rc windres: use PACKAGE_VERSION rather than building more version numbers 2021-08-17 16:54:47 +08:00
bitcoin-cli.cpp Merge bitcoin/bitcoin#24632: add (none) in -getinfo Warnings: if no warning returned 2022-04-13 21:49:22 +02:00
bitcoin-tx-res.rc windres: use PACKAGE_VERSION rather than building more version numbers 2021-08-17 16:54:47 +08:00
bitcoin-tx.cpp refactor: use named args when ScriptToUniv or TxToUniv are invoked 2022-03-30 20:00:27 +01:00
bitcoin-util-res.rc windres: use PACKAGE_VERSION rather than building more version numbers 2021-08-17 16:54:47 +08:00
bitcoin-util.cpp refactor: remove unused boost header include in bitcoin-util.cpp 2022-03-25 15:30:20 +00:00
bitcoin-wallet-res.rc windres: use PACKAGE_VERSION rather than building more version numbers 2021-08-17 16:54:47 +08:00
bitcoin-wallet.cpp Output license info when binaries are passed -version 2022-02-22 15:36:19 +00:00
bitcoind-res.rc windres: use PACKAGE_VERSION rather than building more version numbers 2021-08-17 16:54:47 +08:00
bitcoind.cpp Output license info when binaries are passed -version 2022-02-22 15:36:19 +00:00
blockencodings.cpp
blockencodings.h
blockfilter.cpp scripted-diff: rename MapIntoRange to FastRange64 2022-01-06 11:29:55 -05:00
blockfilter.h
chain.cpp Avoid integer sanitizer warnings in chain.o 2022-01-25 10:49:46 +01:00
chain.h Merge bitcoin/bitcoin#24146: Avoid integer sanitizer warnings in chain.o 2022-01-31 09:23:54 +01:00
chainparams.cpp Merge bitcoin/bitcoin#23536: Enforce Taproot script flags whenever WITNESS is set 2022-03-25 14:11:18 +01:00
chainparams.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
chainparamsbase.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
chainparamsbase.h
chainparamsseeds.h net: Update hardcoded seeds for 23.x 2022-02-22 15:15:27 +01:00
checkqueue.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
clientversion.cpp refactor: shift CopyrightHolders() and LicenseInfo() to clientversion.cpp 2022-02-22 15:36:19 +00:00
clientversion.h refactor: shift CopyrightHolders() and LicenseInfo() to clientversion.cpp 2022-02-22 15:36:19 +00:00
coins.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
coins.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
compat.h compat: remove strnlen back-compat code 2022-03-29 10:15:33 +01:00
compressor.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
compressor.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
core_io.h refactor: prefer snake case, TxToUniv arg hashBlock renamed block_hash 2022-03-30 20:00:27 +01:00
core_memusage.h
core_read.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
core_write.cpp refactor: add stdd:: includes to core_write 2022-03-30 20:11:15 +01:00
cuckoocache.h Add FastRange32 function and use it throughout the codebase 2022-01-07 13:37:47 -05:00
dbwrapper.cpp refactor: use Span in random.* 2022-03-23 17:36:33 -05:00
dbwrapper.h Use spans of std::byte in serialize 2022-01-02 11:40:31 +01:00
deploymentinfo.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
deploymentinfo.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
deploymentstatus.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
deploymentstatus.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
dummywallet.cpp Add src/wallet/* code to wallet:: namespace 2022-01-06 22:14:16 -05:00
external_signer.cpp external_signer: improve fingerprint matching logic (stop on first match) 2021-08-24 11:30:09 +02:00
external_signer.h refactor: make ExternalSigner NetworkArg() and m_chain private 2021-06-16 10:48:58 +02:00
flatfile.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
flatfile.h
fs.cpp refactor: replace boost::filesystem with std::filesystem 2022-02-03 18:35:52 +08:00
fs.h Make fs.h C++20 compliant 2022-03-24 11:36:37 +01:00
hash.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
hash.h Squashed 'src/secp256k1/' changes from 0559fc6e41..8746600eec 2022-04-06 20:20:30 +01:00
httprpc.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
httprpc.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
httpserver.cpp Merge bitcoin/bitcoin#24681: build: Bump libevent minimum version up to 2.1.8 2022-04-06 13:19:36 +01:00
httpserver.h Merge bitcoin/bitcoin#24681: build: Bump libevent minimum version up to 2.1.8 2022-04-06 13:19:36 +01:00
i2p.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
i2p.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
indirectmap.h
init.cpp Merge bitcoin/bitcoin#22910: net: Encapsulate asmap in NetGroupManager 2022-04-22 14:43:14 +01:00
init.h init: Disable syscall sandbox in the bitcoin-qt process 2022-04-05 13:29:42 +02:00
key.cpp Merge bitcoin/bitcoin#24213: refactor: use Span in random.* 2022-04-21 16:38:04 +02:00
key.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
key_io.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
key_io.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
logging.cpp Put lock logging behind DEBUG_LOCKCONTENTION preprocessor directive 2022-04-05 12:49:48 +02:00
logging.h Put lock logging behind DEBUG_LOCKCONTENTION preprocessor directive 2022-04-05 12:49:48 +02:00
Makefile.am [build] Add netgroup.cpp|h 2022-04-19 10:25:39 +01:00
Makefile.bench.include bench: Add a benchmark for wallet loading 2022-04-18 17:02:57 -04:00
Makefile.crc32c.include build: remove support for weak linking getauxval() 2021-09-24 15:40:04 +08:00
Makefile.leveldb.include build: remove build stubs for external leveldb 2021-10-15 01:02:45 +00:00
Makefile.minisketch.include build: add minisketch build file and include it 2021-10-21 09:37:30 +08:00
Makefile.qt.include build: header-only Boost 2022-02-13 20:59:07 +00:00
Makefile.qt_locale.include qt: Pre-branch translation updates for 23.x 2022-02-28 16:59:56 +01:00
Makefile.qttest.include test: Add tests for GetArg methods / settings.json type coercion 2022-03-07 13:29:46 -05:00
Makefile.test.include Merge bitcoin/bitcoin#24098: rest: Use query parameters to control resource loading 2022-04-06 09:25:56 +02:00
Makefile.test_fuzz.include scripted-diff: Rename libbitcoin_server.a to libbitcoin_node.a 2021-12-20 10:53:01 -05:00
Makefile.test_util.include scripted-diff: Rename libbitcoin_server.a to libbitcoin_node.a 2021-12-20 10:53:01 -05:00
Makefile.univalue.include Integrate univalue into our buildsystem 2021-10-11 20:46:25 +08:00
mapport.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
mapport.h
memusage.h
merkleblock.cpp
merkleblock.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
net.cpp Merge bitcoin/bitcoin#22910: net: Encapsulate asmap in NetGroupManager 2022-04-22 14:43:14 +01:00
net.h [net] Move asmap into NetGroupManager 2022-04-20 14:29:29 +01:00
net_permissions.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
net_permissions.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
net_processing.cpp Merge bitcoin/bitcoin#24213: refactor: use Span in random.* 2022-04-21 16:38:04 +02:00
net_processing.h scripted-diff: rename TxRelay members 2022-03-18 11:35:58 +00:00
net_types.cpp net: Drop only invalid entries when reading banlist.json 2021-12-14 18:58:45 +01:00
net_types.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
netaddress.cpp [netgroupman] Move GetMappedAS() and GetGroup() logic to NetGroupManager 2022-04-20 14:35:52 +01:00
netaddress.h [netgroupman] Move GetMappedAS() and GetGroup() logic to NetGroupManager 2022-04-20 14:35:52 +01:00
netbase.cpp net: use Sock::SetSockOpt() instead of standalone SetSocketNoDelay() 2022-04-15 09:39:25 +02:00
netbase.h net: use Sock::SetSockOpt() instead of standalone SetSocketNoDelay() 2022-04-15 09:39:25 +02:00
netgroup.cpp [netgroupman] Move asmap checksum calculation to NetGroupManager 2022-04-20 14:35:53 +01:00
netgroup.h [netgroupman] Remove NetGroupManager::GetAsmap() 2022-04-20 14:35:53 +01:00
netmessagemaker.h
noui.cpp
noui.h
outputtype.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
outputtype.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
pow.cpp
pow.h
prevector.h prevector: only allow trivially copyable types 2022-04-24 20:02:04 +02:00
protocol.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
protocol.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
psbt.cpp Use spans of std::byte in serialize 2022-01-02 11:40:31 +01:00
psbt.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
pubkey.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
pubkey.h Use spans of std::byte in serialize 2022-01-02 11:40:31 +01:00
random.cpp Merge bitcoin/bitcoin#24213: refactor: use Span in random.* 2022-04-21 16:38:04 +02:00
random.h refactor: use Span in random.* 2022-03-23 17:36:33 -05:00
randomenv.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
randomenv.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
rest.cpp move-mostly: Make fHavePruned a BlockMan member 2022-04-19 14:34:56 -04:00
rest.h Handle query string when parsing data format 2022-03-10 12:01:53 +01:00
reverse_iterator.h
scheduler.cpp scheduler: Capture ‘this’ explicitly in lambda 2022-03-24 11:36:37 +01:00
scheduler.h refactor: replace RecursiveMutex m_callbacks_mutex with Mutex 2022-01-14 13:27:41 +01:00
serialize.h Remove unused char serialize 2022-01-02 11:52:11 +01:00
shutdown.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
shutdown.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
signet.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
signet.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
span.h span: Add BytePtr helper 2022-01-02 11:13:40 +01:00
streams.h scripted-diff: Rename nReadPos to m_read_pos in streams.h 2022-02-09 17:21:04 +01:00
sync.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
sync.h Merge bitcoin/bitcoin#24355: util, refactor: Add UNIQUE_NAME helper macro 2022-04-13 22:59:33 +02:00
threadinterrupt.cpp
threadinterrupt.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
threadsafety.h
timedata.cpp timedata: rename variables to match the coding style 2022-03-02 15:40:35 +01:00
timedata.h timedata: make it possible to reset the state 2022-03-02 15:40:30 +01:00
tinyformat.h Use C++17 [[fallthrough]] attribute, and drop -Wno-implicit-fallthrough 2021-07-05 08:59:38 +03:00
torcontrol.cpp refactor: use Span in random.* 2022-03-23 17:36:33 -05:00
torcontrol.h torcontrol: Query Tor for correct -onion configuration 2022-03-15 01:33:52 +00:00
txdb.cpp Merge bitcoin/bitcoin#24236: Remove utxo db upgrade code 2022-04-05 15:38:14 +02:00
txdb.h Remove utxo db upgrade code 2022-03-10 13:05:29 +01:00
txmempool.cpp Merge bitcoin/bitcoin#23416: doc: Remove fee delta TODO from txmempool.cpp 2022-04-14 09:42:22 +02:00
txmempool.h Use CAmount for fee delta and modified fee 2022-03-21 13:38:08 +01:00
txorphanage.cpp
txorphanage.h [net processing] Add Orphanage empty consistency check 2021-07-20 13:12:42 +01:00
txrequest.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
txrequest.h
uint256.cpp
uint256.h Use spans of std::byte in serialize 2022-01-02 11:40:31 +01:00
undo.h
validation.cpp scripted-diff: Rename pindexBestHeader, fHavePruned 2022-04-19 14:36:18 -04:00
validation.h scripted-diff: Rename pindexBestHeader, fHavePruned 2022-04-19 14:36:18 -04:00
validationinterface.cpp
validationinterface.h Add coinstatsindex_unclean_shutdown test 2022-02-25 16:06:27 -05:00
version.h
versionbits.cpp trivial: comment tweaks 2022-01-28 18:07:08 +10:00
versionbits.h Merge bitcoin/bitcoin#23508: Add getdeploymentinfo RPC 2022-01-28 08:46:03 +01:00
walletinitinterface.h Add src/node/* code to node:: namespace 2022-01-06 22:14:16 -05:00
warnings.cpp
warnings.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00