Skip to content

Commit 716f57e

Browse files
FrankYFTangdeonajulary06
authored andcommitted
Inflection 134 std::unique_ptr for DictionaryKeyIterator.cpp (#142)
* Inflection 134 std::unique_ptr for DictionaryKeyIterator.cpp * add npc
1 parent 81acd79 commit 716f57e

File tree

2 files changed

+7
-8
lines changed

2 files changed

+7
-8
lines changed

inflection/src/inflection/dictionary/DictionaryKeyIterator.cpp

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,24 +18,22 @@ DictionaryKeyIterator::DictionaryKeyIterator(const metadata::MarisaTrieIterator<
1818
}
1919

2020
DictionaryKeyIterator::DictionaryKeyIterator(DictionaryKeyIterator&& iterator)
21-
: trieIterator(iterator.trieIterator)
21+
: trieIterator(npc(iterator.trieIterator.release()))
2222
{
23-
iterator.trieIterator = nullptr;
2423
}
2524

2625
DictionaryKeyIterator::~DictionaryKeyIterator()
2726
{
28-
delete trieIterator;
2927
}
3028

3129
const ::std::u16string&
3230
DictionaryKeyIterator::operator*() const {
33-
return (*(*npc(trieIterator))).first;
31+
return (*(*trieIterator)).first;
3432
}
3533

3634
DictionaryKeyIterator&
3735
DictionaryKeyIterator::operator++() {
38-
++*npc(trieIterator);
36+
++*trieIterator;
3937
return *this;
4038
}
4139

@@ -52,13 +50,13 @@ DictionaryKeyIterator::operator!=(const DictionaryKeyIterator& rhs) const {
5250
DictionaryKeyIterator
5351
DictionaryKeyIterator::begin() const
5452
{
55-
return DictionaryKeyIterator(npc(trieIterator)->begin());
53+
return DictionaryKeyIterator(trieIterator->begin());
5654
}
5755

5856
DictionaryKeyIterator
5957
DictionaryKeyIterator::end() const
6058
{
61-
return DictionaryKeyIterator(npc(trieIterator)->end());
59+
return DictionaryKeyIterator(trieIterator->end());
6260
}
6361

6462
} // namespace inflection::dictionary

inflection/src/inflection/dictionary/DictionaryKeyIterator.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include <inflection/dictionary/fwd.hpp>
88
#include <inflection/Object.hpp>
99
#include <cstdint>
10+
#include <memory>
1011
#include <string>
1112

1213
/**
@@ -62,7 +63,7 @@ class INFLECTION_CLASS_API inflection::dictionary::DictionaryKeyIterator
6263

6364
explicit DictionaryKeyIterator(const ::inflection::dictionary::metadata::MarisaTrieIterator<uint64_t>& trieIterator);
6465

65-
::inflection::dictionary::metadata::MarisaTrieIterator<uint64_t>* trieIterator { };
66+
std::unique_ptr<::inflection::dictionary::metadata::MarisaTrieIterator<uint64_t>> trieIterator { };
6667

6768
friend class DictionaryMetaData_MMappedDictionary;
6869
};

0 commit comments

Comments
 (0)