[Groonga-commit] groonga/grnxx at 11540e3 [master] Skip needless resize.

Back to archive index

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 



More information about the Groonga-commit mailing list
Back to archive index