susumu.yata
null+****@clear*****
Thu Jul 17 12:55:04 JST 2014
susumu.yata 2014-07-17 12:55:04 +0900 (Thu, 17 Jul 2014) New Revision: 11540e3acdfd337fa9e60479e744ab5b4f9e8423 https://github.com/groonga/grnxx/commit/11540e3acdfd337fa9e60479e744ab5b4f9e8423 Message: Skip needless resize. Modified files: lib/grnxx/expression.cpp Modified: lib/grnxx/expression.cpp (+7 -3) =================================================================== --- lib/grnxx/expression.cpp 2014-07-17 12:52:13 +0900 (c89d398) +++ lib/grnxx/expression.cpp 2014-07-17 12:55:04 +0900 (b010744) @@ -125,7 +125,9 @@ class DatumNode : public Node<T> { template <typename T> bool DatumNode<T>::evaluate(Error *error, const RecordSet &record_set) { try { - this->values_.resize(record_set.size(), datum_); + if (static_cast<size_t>(record_set.size()) > this->values_.size()) { + this->values_.resize(record_set.size(), datum_); + } return true; } catch (...) { GRNXX_ERROR_SET(error, NO_MEMORY, "Memory allocation failed"); @@ -153,8 +155,10 @@ class DatumNode<Text> : public Node<Text> { bool DatumNode<Text>::evaluate(Error *error, const RecordSet &record_set) { try { - this->values_.resize(record_set.size(), - Text(datum_.data(), datum_.size())); + if (static_cast<size_t>(record_set.size()) > this->values_.size()) { + this->values_.resize(record_set.size(), + Text(datum_.data(), datum_.size())); + } return true; } catch (...) { GRNXX_ERROR_SET(error, NO_MEMORY, "Memory allocation failed"); -------------- next part -------------- HTML����������������������������...Download