From d9b52a25ff363d37b2f5afca65a7d83d96cb2124 Mon Sep 17 00:00:00 2001 From: "lperron@google.com" Date: Sat, 17 Dec 2011 21:48:11 +0000 Subject: [PATCH] compilation fix, more work on collect_variables --- constraint_solver/collect_variables.cc | 16 +++++++++++++++- constraint_solver/expr_array.cc | 2 +- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/constraint_solver/collect_variables.cc b/constraint_solver/collect_variables.cc index 3da837cad2..b39dd9aed8 100644 --- a/constraint_solver/collect_variables.cc +++ b/constraint_solver/collect_variables.cc @@ -176,7 +176,7 @@ class CollectVariablesVisitor : public ModelVisitor { } for (int j = 0; j < matrix.columns; ++j) { if (counters[j].size() == matrix.rows) { - vector vars = + const std::vector& vars = top()->FindIntegerVariableArrayArgumentOrDie( ModelVisitor::kVarsArgument); LOG(INFO) << "Found index variable in allowed assignment constraint: " @@ -189,6 +189,20 @@ class CollectVariablesVisitor : public ModelVisitor { break; } } + } else if (type_name.compare(ModelVisitor::kNoCycle) == 0) { + const std::vector& vars = + top()->FindIntegerVariableArrayArgumentOrDie( + ModelVisitor::kActiveArgument); + for (int i = 0; i < vars.size(); ++i) { + IgnoreIntegerVariable(const_cast(vars[i])); + } + } else if (type_name.compare(ModelVisitor::kPathCumul) == 0) { + const std::vector& vars = + top()->FindIntegerVariableArrayArgumentOrDie( + ModelVisitor::kActiveArgument); + for (int i = 0; i < vars.size(); ++i) { + IgnoreIntegerVariable(const_cast(vars[i])); + } } PopArgumentHolder(); } diff --git a/constraint_solver/expr_array.cc b/constraint_solver/expr_array.cc index 3d2f0a33ba..afe0db4b83 100644 --- a/constraint_solver/expr_array.cc +++ b/constraint_solver/expr_array.cc @@ -1402,7 +1402,7 @@ IntExpr* Solver::MakeSum(IntVar* const* vars, int size) { sum_max += vars[i]->Max(); } IntVar* const sum_var = MakeIntVar(sum_min, sum_max); - AddConstraint(RevAlloc(new SumConstraint(this, vars, size, sum_var)));, + AddConstraint(RevAlloc(new SumConstraint(this, vars, size, sum_var))); return sum_var; } }