diff options
author | William Casarin <jb55@jb55.com> | 2020-05-01 17:31:38 -0700 |
---|---|---|
committer | William Casarin <jb55@jb55.com> | 2020-05-15 15:26:54 -0700 |
commit | 83a425d25af033086744c1c8c892015014ed46bd (patch) | |
tree | 1fd1094b3c5c37aa900b49b496e0d1c40468b7b6 /src/compressor.cpp | |
parent | 844d2070a2c0106bb7a54be5cad7d4da4d9cd55e (diff) |
compressor: use a prevector in compressed script serialization
Use a prevector for stack allocation instead of heap allocation during
script compression and decompression. These functions were doing
millions of unnecessary heap allocations during IBD.
We introduce a CompressedScript type alias for this prevector. It is
size 33 as that is the maximum size of a compressed script.
Fix the DecompressScript header to match the variable name from
compressor.cpp
Signed-off-by: William Casarin <jb55@jb55.com>
Diffstat (limited to 'src/compressor.cpp')
-rw-r--r-- | src/compressor.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/compressor.cpp b/src/compressor.cpp index a70306d320..ef3135e7a5 100644 --- a/src/compressor.cpp +++ b/src/compressor.cpp @@ -52,7 +52,7 @@ static bool IsToPubKey(const CScript& script, CPubKey &pubkey) return false; } -bool CompressScript(const CScript& script, std::vector<unsigned char> &out) +bool CompressScript(const CScript& script, CompressedScript& out) { CKeyID keyID; if (IsToKeyID(script, keyID)) { @@ -92,7 +92,7 @@ unsigned int GetSpecialScriptSize(unsigned int nSize) return 0; } -bool DecompressScript(CScript& script, unsigned int nSize, const std::vector<unsigned char> &in) +bool DecompressScript(CScript& script, unsigned int nSize, const CompressedScript& in) { switch(nSize) { case 0x00: |