Skip to content

Commit

Permalink
Use std::shared_ptr instead of raw pointer for dictionary_
Browse files Browse the repository at this point in the history
  • Loading branch information
Alexandre Lissy committed Oct 18, 2019
1 parent 336daa1 commit ef3f800
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 6 deletions.
3 changes: 2 additions & 1 deletion native_client/ctcdecode/ctc_beam_search_decoder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,8 @@ DecoderState::init(const Alphabet& alphabet,
prefixes_.push_back(root);

if (ext_scorer != nullptr && !ext_scorer->is_character_based()) {
auto dict_ptr = ext_scorer->dictionary->Copy(true);
// no need for std::make_shared<>() since Copy() does 'new' behind the doors
auto dict_ptr = std::shared_ptr<PathTrie::FstType>(ext_scorer->dictionary->Copy(true));
root->set_dictionary(dict_ptr);
auto matcher = std::make_shared<fst::SortedMatcher<PathTrie::FstType>>(*dict_ptr, fst::MATCH_INPUT);
root->set_matcher(matcher);
Expand Down
6 changes: 3 additions & 3 deletions native_client/ctcdecode/path_trie.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -165,9 +165,9 @@ void PathTrie::remove() {
}
}

void PathTrie::set_dictionary(PathTrie::FstType* dictionary) {
void PathTrie::set_dictionary(std::shared_ptr<PathTrie::FstType> dictionary) {
dictionary_ = dictionary;
dictionary_state_ = dictionary->Start();
dictionary_state_ = dictionary_->Start();
has_dictionary_ = true;
}

Expand Down Expand Up @@ -201,4 +201,4 @@ void PathTrie::print(const Alphabet& a) {
printf("\n");
printf("transcript:\t %s\n", tr.c_str());
}
#endif // DEBUG
#endif // DEBUG
4 changes: 2 additions & 2 deletions native_client/ctcdecode/path_trie.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ class PathTrie {
void iterate_to_vec(std::vector<PathTrie*>& output);

// set dictionary for FST
void set_dictionary(FstType* dictionary);
void set_dictionary(std::shared_ptr<FstType> dictionary);

void set_matcher(std::shared_ptr<fst::SortedMatcher<FstType>>);

Expand Down Expand Up @@ -72,7 +72,7 @@ class PathTrie {
std::vector<std::pair<int, PathTrie*>> children_;

// pointer to dictionary of FST
FstType* dictionary_;
std::shared_ptr<FstType> dictionary_;
FstType::StateId dictionary_state_;
// true if finding ars in FST
std::shared_ptr<fst::SortedMatcher<FstType>> matcher_;
Expand Down

0 comments on commit ef3f800

Please sign in to comment.