From b1c14bd6ec24bdb1d143867417d3c8969d52f6d9 Mon Sep 17 00:00:00 2001 From: Laurent Perron Date: Fri, 29 Jul 2016 11:04:36 -0700 Subject: [PATCH] fix potential missing propagation in NotBetweenCt --- src/constraint_solver/expr_cst.cc | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/constraint_solver/expr_cst.cc b/src/constraint_solver/expr_cst.cc index 8281754a4e..16ac72872a 100644 --- a/src/constraint_solver/expr_cst.cc +++ b/src/constraint_solver/expr_cst.cc @@ -862,10 +862,8 @@ class NotBetweenCt : public Constraint { : Constraint(s), expr_(v), min_(l), max_(u), demon_(nullptr) {} void Post() override { - if (!expr_->IsVar()) { - demon_ = solver()->MakeConstraintInitialPropagateCallback(this); - expr_->WhenRange(demon_); - } + demon_ = solver()->MakeConstraintInitialPropagateCallback(this); + expr_->WhenRange(demon_); } void InitialPropagate() override { @@ -878,7 +876,7 @@ class NotBetweenCt : public Constraint { expr_->SetMax(min_ - 1); } - if (demon_ != nullptr && (emax < min_ || emin > max_)) { + if (!expr_->IsVar() && (emax < min_ || emin > max_)) { demon_->inhibit(solver()); } }