mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-03-25 15:05:55 +01:00
Generalize/simplify VectorReader into SpanReader
This commit is contained in:
@@ -81,7 +81,7 @@ GCSFilter::GCSFilter(const Params& params)
|
||||
GCSFilter::GCSFilter(const Params& params, std::vector<unsigned char> encoded_filter)
|
||||
: m_params(params), m_encoded(std::move(encoded_filter))
|
||||
{
|
||||
VectorReader stream(GCS_SER_TYPE, GCS_SER_VERSION, m_encoded, 0);
|
||||
SpanReader stream{GCS_SER_TYPE, GCS_SER_VERSION, m_encoded, 0};
|
||||
|
||||
uint64_t N = ReadCompactSize(stream);
|
||||
m_N = static_cast<uint32_t>(N);
|
||||
@@ -92,7 +92,7 @@ GCSFilter::GCSFilter(const Params& params, std::vector<unsigned char> encoded_fi
|
||||
|
||||
// Verify that the encoded filter contains exactly N elements. If it has too much or too little
|
||||
// data, a std::ios_base::failure exception will be raised.
|
||||
BitStreamReader<VectorReader> bitreader(stream);
|
||||
BitStreamReader<SpanReader> bitreader{stream};
|
||||
for (uint64_t i = 0; i < m_N; ++i) {
|
||||
GolombRiceDecode(bitreader, m_params.m_P);
|
||||
}
|
||||
@@ -133,13 +133,13 @@ GCSFilter::GCSFilter(const Params& params, const ElementSet& elements)
|
||||
|
||||
bool GCSFilter::MatchInternal(const uint64_t* element_hashes, size_t size) const
|
||||
{
|
||||
VectorReader stream(GCS_SER_TYPE, GCS_SER_VERSION, m_encoded, 0);
|
||||
SpanReader stream{GCS_SER_TYPE, GCS_SER_VERSION, m_encoded, 0};
|
||||
|
||||
// Seek forward by size of N
|
||||
uint64_t N = ReadCompactSize(stream);
|
||||
assert(N == m_N);
|
||||
|
||||
BitStreamReader<VectorReader> bitreader(stream);
|
||||
BitStreamReader<SpanReader> bitreader{stream};
|
||||
|
||||
uint64_t value = 0;
|
||||
size_t hashes_index = 0;
|
||||
|
||||
Reference in New Issue
Block a user