From dacc249105c81edd36fdb8520b2c6d77092c071b Mon Sep 17 00:00:00 2001 From: Jan Steemann Date: Fri, 24 Oct 2014 23:39:58 +0200 Subject: [PATCH] fixed AggregatorGroup shutdown --- arangod/Aql/ExecutionBlock.cpp | 17 +++++++++++++++-- arangod/Aql/ExecutionBlock.h | 10 ++-------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/arangod/Aql/ExecutionBlock.cpp b/arangod/Aql/ExecutionBlock.cpp index 9fa7329cc9..54bb6de3a5 100644 --- a/arangod/Aql/ExecutionBlock.cpp +++ b/arangod/Aql/ExecutionBlock.cpp @@ -55,6 +55,19 @@ using StringBuffer = triagens::basics::StringBuffer; // ----------------------------------------------------------------------------- // --SECTION-- struct AggregatorGroup // ----------------------------------------------------------------------------- + +AggregatorGroup::AggregatorGroup () + : firstRow(0), + lastRow(0), + rowsAreValid(false) { +} + +AggregatorGroup::~AggregatorGroup () { + //reset(); + for (auto it = groupBlocks.begin(); it != groupBlocks.end(); ++it) { + delete (*it); + } +} // ----------------------------------------------------------------------------- // --SECTION-- public methods @@ -2389,11 +2402,11 @@ int AggregateBlock::getOrSkipSome (size_t atLeast, _currentGroup.collections[i] = cur->getDocumentCollection((*it).second); ++i; } - if(! skipping){ + if (! skipping) { _currentGroup.setFirstRow(_pos); } } - if(! skipping){ + if (! skipping) { _currentGroup.setLastRow(_pos); } diff --git a/arangod/Aql/ExecutionBlock.h b/arangod/Aql/ExecutionBlock.h index eb977f2e94..ea35bf413c 100644 --- a/arangod/Aql/ExecutionBlock.h +++ b/arangod/Aql/ExecutionBlock.h @@ -65,15 +65,9 @@ namespace triagens { size_t lastRow; bool rowsAreValid; - AggregatorGroup () - : firstRow(0), - lastRow(0), - rowsAreValid(false) { - } + AggregatorGroup (); - ~AggregatorGroup () { - reset(); - } + ~AggregatorGroup (); void initialize (size_t capacity); void reset ();