From 5bdbbdc0967626a763c836a55dc7d018c15c10f2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20Barbosa?= <joao.paulo.barbosa@gmail.com>
Date: Mon, 29 Jan 2018 23:41:06 +0000
Subject: [PATCH] Refactor HaveKeys to early return on false result

---
 src/script/ismine.cpp | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/src/script/ismine.cpp b/src/script/ismine.cpp
index d0dd27255..35d794b98 100644
--- a/src/script/ismine.cpp
+++ b/src/script/ismine.cpp
@@ -13,16 +13,13 @@
 
 typedef std::vector<unsigned char> valtype;
 
-unsigned int HaveKeys(const std::vector<valtype>& pubkeys, const CKeyStore& keystore)
+static bool HaveKeys(const std::vector<valtype>& pubkeys, const CKeyStore& keystore)
 {
-    unsigned int nResult = 0;
-    for (const valtype& pubkey : pubkeys)
-    {
+    for (const valtype& pubkey : pubkeys) {
         CKeyID keyID = CPubKey(pubkey).GetID();
-        if (keystore.HaveKey(keyID))
-            ++nResult;
+        if (!keystore.HaveKey(keyID)) return false;
     }
-    return nResult;
+    return true;
 }
 
 isminetype IsMine(const CKeyStore& keystore, const CScript& scriptPubKey, SigVersion sigversion)
@@ -140,7 +137,7 @@ isminetype IsMine(const CKeyStore &keystore, const CScript& scriptPubKey, bool&
                 }
             }
         }
-        if (HaveKeys(keys, keystore) == keys.size())
+        if (HaveKeys(keys, keystore))
             return ISMINE_SPENDABLE;
         break;
     }