Serialization improvements #10785
Open
Commits
Show all changes
26 commits
Select commit
Hold shift + click to select a range
e7208b9
Introduce new serialization macros without casts
sipa beeebe6
Support deserializing into temporaries
sipa 4b0b7df
Add READWRITEAS, a macro to serialize safely as a different type
sipa f80d6b5
Generalize CompactSize wrapper
sipa a1cfa72
Generalize VarInt wrappers
sipa 8db2354
Generalize FlatData wrapper
sipa 6020efb
Generalize LimitedString wrapper
sipa 07a965c
Merge READWRITEMANY into READWRITE
sipa c891032
Add BigEndian serialization wrapper
sipa d2de054
Add custom vector-element serialization wrapper
sipa 31f8a21
Convert primitives to new serialization
sipa 3b0cfd6
Convert addrdb/addrman to new serialization
sipa f2a45e5
Convert blockencodings to new serialization
sipa 447ed4b
Convert merkleblock/bloom to new serialization
sipa 15cf59d
Convert chain to new serialization
sipa 4e038b0
Convert feerate to new serialization
sipa 9977f5e
Convert protocol to new serialization
sipa 523973e
Move compressor utility functions out of class
sipa eb156cf
Convert compressor/txdb/coins/undo/script to new serialization
sipa db96db5
Convert Qt to new serialization
sipa 115e545
Convert rest to new serialization
sipa 2dc7350
Convert dbwrapper tests to new serialization
sipa 30ecea4
Convert serialize_tests to new serialization
sipa fbaa24b
Convert wallet/walletdb/crypter to new serialization
sipa fab2228
Convert netaddress to new serialization
sipa b0652ac
Remove old serialization primitives
sipa
Jump to file or symbol
Failed to load files and symbols.
10
src/addrdb.h
10
src/bloom.h
64
src/chain.h
Oops, something went wrong.
For ease of implementation, deserialization first happens into a
std::vector<uint64_t>, and is then converted. This means a temporary is created and allocated, which is an overhead that the old implementation didn't have.