From e455d97fc787777b3e7a21d7d81345d34a42457b Mon Sep 17 00:00:00 2001
From: Henning Koehler <henning.koehler.nz@gmail.com>
Date: Tue, 6 Mar 2018 00:03:14 +1300
Subject: [PATCH] cleanup of CBonusSystemNode::removeBonusesRecursive

---
 lib/HeroBonus.cpp | 14 +++++---------
 lib/HeroBonus.h   |  4 ++--
 2 files changed, 7 insertions(+), 11 deletions(-)

diff --git a/lib/HeroBonus.cpp b/lib/HeroBonus.cpp
index 6fc322ceb..0d356c1ed 100644
--- a/lib/HeroBonus.cpp
+++ b/lib/HeroBonus.cpp
@@ -791,14 +791,10 @@ void CBonusSystemNode::detachFrom(CBonusSystemNode *parent)
 	CBonusSystemNode::treeHasChanged();
 }
 
-void CBonusSystemNode::removeBonusesRecursive(const CSelector &s)
+void CBonusSystemNode::removeBonusesRecursive(const CSelector & s)
 {
-	BonusList bl;
-	exportedBonuses.getBonuses(bl, s, Selector::all);
-	for(auto b : bl)
-		removeBonus(b);
-
-	for(CBonusSystemNode *child : children)
+	removeBonuses(s);
+	for(CBonusSystemNode * child : children)
 		child->removeBonusesRecursive(s);
 }
 
@@ -850,10 +846,10 @@ void CBonusSystemNode::removeBonus(const std::shared_ptr<Bonus>& b)
 	CBonusSystemNode::treeHasChanged();
 }
 
-void CBonusSystemNode::removeBonuses(const CSelector &selector)
+void CBonusSystemNode::removeBonuses(const CSelector & selector)
 {
 	BonusList toRemove;
-	exportedBonuses.getBonuses(toRemove, selector);
+	exportedBonuses.getBonuses(toRemove, selector, Selector::all);
 	for(auto bonus : toRemove)
 		removeBonus(bonus);
 }
diff --git a/lib/HeroBonus.h b/lib/HeroBonus.h
index 5659470d9..7455c05fc 100644
--- a/lib/HeroBonus.h
+++ b/lib/HeroBonus.h
@@ -709,8 +709,8 @@ public:
 	void propagateBonus(std::shared_ptr<Bonus> b);
 	void unpropagateBonus(std::shared_ptr<Bonus> b);
 	void removeBonus(const std::shared_ptr<Bonus>& b);
-	void removeBonuses(const CSelector &selector);
-	void removeBonusesRecursive(const CSelector &s);
+	void removeBonuses(const CSelector & selector);
+	void removeBonusesRecursive(const CSelector & s);
 	void newRedDescendant(CBonusSystemNode *descendant); //propagation needed
 	void removedRedDescendant(CBonusSystemNode *descendant); //de-propagation needed