Skip to content

Commit 68e23ee

Browse files
authored
Issue 134, use std::unique_ptr in SemanticFeatureModel (#137)
1 parent 4fb5b25 commit 68e23ee

File tree

2 files changed

+4
-5
lines changed

2 files changed

+4
-5
lines changed

inflection/src/inflection/dialog/SemanticFeatureModel.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ SemanticFeatureModel::SemanticFeatureModel(const ::inflection::util::ULocale& lo
3737

3838
SemanticFeatureModel::~SemanticFeatureModel()
3939
{
40-
delete defaultDisplayFunction;
4140
for (const auto& defaultFeatureFunction : defaultFeatureFunctions) {
4241
delete defaultFeatureFunction.second;
4342
}
@@ -119,13 +118,12 @@ void SemanticFeatureModel::putDefaultFeatureFunctionByName(::std::u16string_view
119118

120119
const DefaultDisplayFunction* SemanticFeatureModel::getDefaultDisplayFunction() const
121120
{
122-
return defaultDisplayFunction;
121+
return defaultDisplayFunction.get();
123122
}
124123

125124
void SemanticFeatureModel::setDefaultDisplayFunction(DefaultDisplayFunction* defaultDisplayFunction)
126125
{
127-
delete this->defaultDisplayFunction;
128-
this->defaultDisplayFunction = defaultDisplayFunction;
126+
this->defaultDisplayFunction.reset(defaultDisplayFunction);
129127
}
130128

131129
::std::vector<SemanticFeature*> SemanticFeatureModel::createDefaultSemanticFeatures(const ::inflection::util::ULocale& locale)

inflection/src/inflection/dialog/SemanticFeatureModel.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include <inflection/util/ULocale.hpp>
1111
#include <inflection/Object.hpp>
1212
#include <map>
13+
#include <memory>
1314
#include <set>
1415
#include <string>
1516
#include <tuple>
@@ -31,7 +32,7 @@ class INFLECTION_CLASS_API inflection::dialog::SemanticFeatureModel final
3132
::std::map<SemanticValue, SemanticFeatureModel_DisplayData> semanticValueMap { };
3233
::std::map<::inflection::dialog::SemanticFeature, DefaultFeatureFunction*> defaultFeatureFunctions { };
3334
::inflection::util::ULocale locale;
34-
DefaultDisplayFunction* defaultDisplayFunction { };
35+
std::unique_ptr<DefaultDisplayFunction> defaultDisplayFunction;
3536

3637
public:
3738
static constexpr auto SPEAK = u"speak";

0 commit comments

Comments
 (0)