aboutsummaryrefslogtreecommitdiff
path: root/src/coins.h
diff options
context:
space:
mode:
authorPieter Wuille <pieter.wuille@gmail.com>2017-06-13 12:17:30 -0700
committerPieter Wuille <pieter.wuille@gmail.com>2017-06-26 16:16:26 -0700
commit21180ff73436e198b6828c312ddfd0a1195447b2 (patch)
tree32541dfda7113742cc54340eda7e859ab62869ce /src/coins.h
parent234ffc677ee58591b139695bf92bbd6f504ee91a (diff)
downloadbitcoin-21180ff73436e198b6828c312ddfd0a1195447b2.tar.xz
Simplify return values of GetCoin/HaveCoin(InCache)
This removes the possibility for GetCoin/HaveCoin/HaveCoinInCache to return true while the respective coin is spent. By doing it across all calls, some extra checks can be eliminated. coins_tests is modified to call HaveCoin sometimes before and sometimes after AccessCoin. A further change is needed because the semantics for GetCoin slightly changed, causing a pruned entry in the parent cache to not be pulled into the child in FetchCoin.
Diffstat (limited to 'src/coins.h')
-rw-r--r--src/coins.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/coins.h b/src/coins.h
index 4774c9f6a6..077545a55b 100644
--- a/src/coins.h
+++ b/src/coins.h
@@ -145,11 +145,13 @@ private:
class CCoinsView
{
public:
- //! Retrieve the Coin (unspent transaction output) for a given outpoint.
+ /** Retrieve the Coin (unspent transaction output) for a given outpoint.
+ * Returns true only when an unspent coin was found, which is returned in coin.
+ * When false is returned, coin's value is unspecified.
+ */
virtual bool GetCoin(const COutPoint &outpoint, Coin &coin) const;
- //! Just check whether we have data for a given outpoint.
- //! This may (but cannot always) return true for spent outputs.
+ //! Just check whether a given outpoint is unspent.
virtual bool HaveCoin(const COutPoint &outpoint) const;
//! Retrieve the block hash whose state this CCoinsView currently represents