Merge rust-bitcoin/rust-bitcoin#1146: Remove needless allocation from BIP-158 encoding

1003ca08e1 Remove needless allocation from BIP-158 encoding (Martin Habovstiak)

Pull request description:

  The BIP-158 finalize code was serializing value to `Vec` only to
  serialize it to writer right away. Thus the intermediary `Vec` was not
  needed.

  Even more, the code used `write` which, while correct in case of `Vec`,
  could trigger code analysis tools or reviewers.

ACKs for top commit:
  tcharding:
    ACK 1003ca08e1
  sanket1729:
    ACK 1003ca08e1
  apoelstra:
    ACK 1003ca08e1

Tree-SHA512: 01e198726f45ef1b0e4bbe80154674d9db12350281e682531259d1d6467881bc7503cfed30d3837813437c3081a35ba7893c3ae4490d07daf20f1b75dbc62d52
This commit is contained in:
Andrew Poelstra 2022-07-29 13:29:12 +00:00
commit 0b02e43da9
No known key found for this signature in database
GPG Key ID: C588D63CE41B97C1
1 changed files with 1 additions and 3 deletions

View File

@ -364,9 +364,7 @@ impl<'a> GCSFilterWriter<'a> {
mapped.sort_unstable(); mapped.sort_unstable();
// write number of elements as varint // write number of elements as varint
let mut encoder = Vec::new(); let mut wrote = VarInt(mapped.len() as u64).consensus_encode(&mut self.writer)?;
VarInt(mapped.len() as u64).consensus_encode(&mut encoder).expect("in-memory writers don't error");
let mut wrote = self.writer.write(encoder.as_slice())?;
// write out deltas of sorted values into a Golonb-Rice coded bit stream // write out deltas of sorted values into a Golonb-Rice coded bit stream
let mut writer = BitStreamWriter::new(self.writer); let mut writer = BitStreamWriter::new(self.writer);