diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2017-05-08 23:37:42 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-08 23:37:42 +0200 |
commit | b9e33dc30174474f87d0387494e4855b0f5e9586 (patch) | |
tree | 724378a997fa72642d2af4943e7f344a1f607df1 /fsa | |
parent | c0636e6bd860b65d5be7915c10276896b89008af (diff) |
Revert "Revert "Clean up what you have allocated.""
Diffstat (limited to 'fsa')
-rw-r--r-- | fsa/src/vespa/fsa/segmenter.cpp | 24 | ||||
-rw-r--r-- | fsa/src/vespa/fsa/segmenter.h | 19 | ||||
-rw-r--r-- | fsa/src/vespa/fsamanagers/rwlock.cpp | 1 |
3 files changed, 26 insertions, 18 deletions
diff --git a/fsa/src/vespa/fsa/segmenter.cpp b/fsa/src/vespa/fsa/segmenter.cpp index 91f5a611f13..fc7d30e9a9b 100644 --- a/fsa/src/vespa/fsa/segmenter.cpp +++ b/fsa/src/vespa/fsa/segmenter.cpp @@ -12,13 +12,33 @@ #include "config.h" #endif -#include <stdio.h> - #include "segmenter.h" namespace fsa { +Segmenter::Segments::Segments() + : _text(), _segments(), _map(), + _segmentation(Segmenter::SEGMENTATION_METHODS,NULL) +{ } + +Segmenter::Segments::~Segments() +{ + clear(); +} + +void +Segmenter::Segments::clear() +{ + _segments.clear(); + _map.init(_text.size()); + initSingles(); + for(unsigned int i=0;i<SEGMENTATION_METHODS;i++){ + delete _segmentation[i]; + _segmentation[i] = nullptr; + } +} + // {{{ Segmenter::Segments::initSingles void Segmenter::Segments::initSingles() diff --git a/fsa/src/vespa/fsa/segmenter.h b/fsa/src/vespa/fsa/segmenter.h index f40f27f522b..74254639538 100644 --- a/fsa/src/vespa/fsa/segmenter.h +++ b/fsa/src/vespa/fsa/segmenter.h @@ -360,12 +360,8 @@ public: unsigned int end); public: - /** Default constructor */ - Segments() : _text(), _segments(), _map(), - _segmentation(Segmenter::SEGMENTATION_METHODS,NULL) {} - - /** Destructor */ - ~Segments() {} + Segments(); + ~Segments(); /** * @brief Set input text, and clear all results. @@ -413,16 +409,7 @@ public: /** * @brief Clear all detected segments and built segmentations. */ - void clear() - { - _segments.clear(); - _map.init(_text.size()); - initSingles(); - for(unsigned int i=0;i<SEGMENTATION_METHODS;i++){ - delete _segmentation[i]; - _segmentation[i]=NULL; - } - } + void clear(); /** * @brief Insert a detected segment. diff --git a/fsa/src/vespa/fsamanagers/rwlock.cpp b/fsa/src/vespa/fsamanagers/rwlock.cpp index 9c296dfe980..4de79cd5146 100644 --- a/fsa/src/vespa/fsamanagers/rwlock.cpp +++ b/fsa/src/vespa/fsamanagers/rwlock.cpp @@ -49,6 +49,7 @@ RWLock::~RWLock(void) #ifndef DISABLE_THREADS pthread_rwlock_destroy(&(_impl->_rwlock)); #endif + delete _impl; } bool RWLock::tryRdLock (void) |