diff options
-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) |