mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-11 04:12:36 -03:00
refactor: add LIFETIMEBOUND to blockfilter where needed
Ensure that the return values do not have a lifetime that exceeds the lifetime of what it is bound to. See https://github.com/bitcoin/bitcoin/blob/master/doc/developer-notes.md#lifetimebound
This commit is contained in:
parent
8343420803
commit
89576ccc57
2 changed files with 9 additions and 7 deletions
|
@ -11,6 +11,7 @@
|
||||||
#include <unordered_set>
|
#include <unordered_set>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
#include <attributes.h>
|
||||||
#include <primitives/block.h>
|
#include <primitives/block.h>
|
||||||
#include <serialize.h>
|
#include <serialize.h>
|
||||||
#include <uint256.h>
|
#include <uint256.h>
|
||||||
|
@ -65,8 +66,8 @@ public:
|
||||||
GCSFilter(const Params& params, const ElementSet& elements);
|
GCSFilter(const Params& params, const ElementSet& elements);
|
||||||
|
|
||||||
uint32_t GetN() const { return m_N; }
|
uint32_t GetN() const { return m_N; }
|
||||||
const Params& GetParams() const { return m_params; }
|
const Params& GetParams() const LIFETIMEBOUND { return m_params; }
|
||||||
const std::vector<unsigned char>& GetEncoded() const { return m_encoded; }
|
const std::vector<unsigned char>& GetEncoded() const LIFETIMEBOUND { return m_encoded; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if the element may be in the set. False positives are possible
|
* Checks if the element may be in the set. False positives are possible
|
||||||
|
@ -128,10 +129,10 @@ public:
|
||||||
BlockFilter(BlockFilterType filter_type, const CBlock& block, const CBlockUndo& block_undo);
|
BlockFilter(BlockFilterType filter_type, const CBlock& block, const CBlockUndo& block_undo);
|
||||||
|
|
||||||
BlockFilterType GetFilterType() const { return m_filter_type; }
|
BlockFilterType GetFilterType() const { return m_filter_type; }
|
||||||
const uint256& GetBlockHash() const { return m_block_hash; }
|
const uint256& GetBlockHash() const LIFETIMEBOUND { return m_block_hash; }
|
||||||
const GCSFilter& GetFilter() const { return m_filter; }
|
const GCSFilter& GetFilter() const LIFETIMEBOUND { return m_filter; }
|
||||||
|
|
||||||
const std::vector<unsigned char>& GetEncodedFilter() const
|
const std::vector<unsigned char>& GetEncodedFilter() const LIFETIMEBOUND
|
||||||
{
|
{
|
||||||
return m_filter.GetEncoded();
|
return m_filter.GetEncoded();
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
#ifndef BITCOIN_INDEX_BLOCKFILTERINDEX_H
|
#ifndef BITCOIN_INDEX_BLOCKFILTERINDEX_H
|
||||||
#define BITCOIN_INDEX_BLOCKFILTERINDEX_H
|
#define BITCOIN_INDEX_BLOCKFILTERINDEX_H
|
||||||
|
|
||||||
|
#include <attributes.h>
|
||||||
#include <blockfilter.h>
|
#include <blockfilter.h>
|
||||||
#include <chain.h>
|
#include <chain.h>
|
||||||
#include <flatfile.h>
|
#include <flatfile.h>
|
||||||
|
@ -49,9 +50,9 @@ protected:
|
||||||
|
|
||||||
bool CustomRewind(const interfaces::BlockKey& current_tip, const interfaces::BlockKey& new_tip) override;
|
bool CustomRewind(const interfaces::BlockKey& current_tip, const interfaces::BlockKey& new_tip) override;
|
||||||
|
|
||||||
BaseIndex::DB& GetDB() const override { return *m_db; }
|
BaseIndex::DB& GetDB() const LIFETIMEBOUND override { return *m_db; }
|
||||||
|
|
||||||
const char* GetName() const override { return m_name.c_str(); }
|
const char* GetName() const LIFETIMEBOUND override { return m_name.c_str(); }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/** Constructs the index, which becomes available to be queried. */
|
/** Constructs the index, which becomes available to be queried. */
|
||||||
|
|
Loading…
Reference in a new issue