parent
							
								
									336daa1641
								
							
						
					
					
						commit
						ef3f8004ce
					
				| @ -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); | ||||
|  | ||||
| @ -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; | ||||
| } | ||||
| 
 | ||||
| @ -201,4 +201,4 @@ void PathTrie::print(const Alphabet& a) { | ||||
|   printf("\n"); | ||||
|   printf("transcript:\t %s\n", tr.c_str()); | ||||
| } | ||||
| #endif // DEBUG
 | ||||
| #endif // DEBUG
 | ||||
|  | ||||
| @ -39,7 +39,7 @@ public: | ||||
|   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>>); | ||||
| 
 | ||||
| @ -72,7 +72,7 @@ private: | ||||
|   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_; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user