From a3543af3cc878f2f24ada8b80198c8e4572c06eb Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Wed, 7 Jun 2017 11:05:34 -0400 Subject: [PATCH] Better document CheckInputs parameter meanings --- src/validation.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/validation.cpp b/src/validation.cpp index baddb84be6..945d39876c 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -1223,8 +1223,15 @@ void InitScriptExecutionCache() { /** * Check whether all inputs of this transaction are valid (no double spends, scripts & sigs, amounts) - * This does not modify the UTXO set. If pvChecks is not NULL, script checks are pushed onto it - * instead of being performed inline. + * This does not modify the UTXO set. + * + * If pvChecks is not NULL, script checks are pushed onto it instead of being performed inline. Any + * script checks which are not necessary (eg due to script execution cache hits) are, obviously, + * not pushed onto pvChecks/run. + * + * Setting cacheSigStore/cacheFullScriptStore to false will remove elements from the corresponding cache + * which are matched. This is useful for checking blocks where we will likely never need the cache + * entry again. */ static bool CheckInputs(const CTransaction& tx, CValidationState &state, const CCoinsViewCache &inputs, bool fScriptChecks, unsigned int flags, bool cacheSigStore, bool cacheFullScriptStore, PrecomputedTransactionData& txdata, std::vector *pvChecks) {