summaryrefslogtreecommitdiff
path: root/impl/MaxStrategy.hpp
diff options
context:
space:
mode:
authorCarlo Zancanaro <carlo@pc-4w14-0.cs.usyd.edu.au>2012-10-15 17:11:14 +1100
committerCarlo Zancanaro <carlo@pc-4w14-0.cs.usyd.edu.au>2012-10-15 17:11:14 +1100
commit697c1c0cd3815eee72b3eedb874fe0e044a69432 (patch)
tree060ce9577a9651cbcb2f11c6444bc649efc4a468 /impl/MaxStrategy.hpp
parentbe1de4be954c80875ad4108e0a33e8e131b2f2c0 (diff)
Some bug fixes for the solver.
Still doesn't work in clang, though.
Diffstat (limited to 'impl/MaxStrategy.hpp')
-rw-r--r--impl/MaxStrategy.hpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/impl/MaxStrategy.hpp b/impl/MaxStrategy.hpp
index f330f3b..96aeef4 100644
--- a/impl/MaxStrategy.hpp
+++ b/impl/MaxStrategy.hpp
@@ -54,14 +54,16 @@ struct DynamicMaxStrategy : public MaxStrategy<Domain> {
log::strategy << indent() << "Invalidating " << v << " - " << *_system[v] << std::endl;
_stable.filter(_var_influence[v]);
+ IdSet<MaxExpression<Domain> > infl = _var_influence[v];
+ _var_influence[v].clear();
+
for (typename IdSet<MaxExpression<Domain> >::iterator
- it = _var_influence[v].begin(),
- end = _var_influence[v].end();
+ it = infl.begin(),
+ end = infl.end();
it != end;
++it) {
solve(_system.maxExpression(*it));
}
- _var_influence[v].clear();
}
private: