Mercurial > hg > orthanc
diff OrthancServer/Search/DatabaseConstraint.cpp @ 3078:147497152ce3 db-changes
fix
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 03 Jan 2019 12:47:17 +0100 |
parents | aae1d6d31fef |
children | df1b17be20f6 |
line wrap: on
line diff
--- a/OrthancServer/Search/DatabaseConstraint.cpp Thu Jan 03 10:06:42 2019 +0100 +++ b/OrthancServer/Search/DatabaseConstraint.cpp Thu Jan 03 12:47:17 2019 +0100 @@ -176,7 +176,7 @@ mandatory_(constraint.isMandatory) { if (constraintType_ != ConstraintType_List && - values_.size() != 1) + constraint.valuesCount != 1) { throw OrthancException(ErrorCode_ParameterOutOfRange); } @@ -185,6 +185,7 @@ for (uint32_t i = 0; i < constraint.valuesCount; i++) { + assert(constraint.values[i] != NULL); values_[i].assign(constraint.values[i]); } } @@ -223,6 +224,13 @@ { memset(&constraint, 0, sizeof(constraint)); + tmpValues.resize(values_.size()); + + for (size_t i = 0; i < values_.size(); i++) + { + tmpValues[i] = values_[i].c_str(); + } + constraint.level = Plugins::Convert(level_); constraint.tagGroup = tag_.GetGroup(); constraint.tagElement = tag_.GetElement(); @@ -231,13 +239,7 @@ constraint.isMandatory = mandatory_; constraint.type = Plugins::Convert(constraintType_); constraint.valuesCount = values_.size(); - - tmpValues.resize(values_.size()); - - for (size_t i = 0; i < values_.size(); i++) - { - tmpValues[i] = values_[i].c_str(); - } + constraint.values = (tmpValues.empty() ? NULL : &tmpValues[0]); } #endif }