aboutsummaryrefslogtreecommitdiffstats
path: root/fsa
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-05-08 23:37:42 +0200
committerGitHub <noreply@github.com>2017-05-08 23:37:42 +0200
commitb9e33dc30174474f87d0387494e4855b0f5e9586 (patch)
tree724378a997fa72642d2af4943e7f344a1f607df1 /fsa
parentc0636e6bd860b65d5be7915c10276896b89008af (diff)
Revert "Revert "Clean up what you have allocated.""
Diffstat (limited to 'fsa')
-rw-r--r--fsa/src/vespa/fsa/segmenter.cpp24
-rw-r--r--fsa/src/vespa/fsa/segmenter.h19
-rw-r--r--fsa/src/vespa/fsamanagers/rwlock.cpp1
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)