@@ -118,20 +118,15 @@ LanguageModel::LanguageModel(const UnicityTable<FontInfo> *fontinfo_table,
118
118
BOOL_INIT_MEMBER(language_model_use_sigmoidal_certainty, false ,
119
119
" Use sigmoidal score for certainty" ,
120
120
dict->getCCUtil ()->params()),
121
+ dawg_args_(nullptr , new DawgPositionVector(), NO_PERM),
121
122
fontinfo_table_(fontinfo_table), dict_(dict),
122
123
fixed_pitch_(false ), max_char_wh_ratio_(0.0 ),
123
124
acceptable_choice_found_(false ) {
124
125
ASSERT_HOST (dict_ != NULL );
125
- dawg_args_ = new DawgArgs (NULL , new DawgPositionVector (), NO_PERM);
126
- very_beginning_active_dawgs_ = new DawgPositionVector ();
127
- beginning_active_dawgs_ = new DawgPositionVector ();
128
126
}
129
127
130
128
LanguageModel::~LanguageModel () {
131
- delete very_beginning_active_dawgs_;
132
- delete beginning_active_dawgs_;
133
- delete dawg_args_->updated_dawgs ;
134
- delete dawg_args_;
129
+ delete dawg_args_.updated_dawgs ;
135
130
}
136
131
137
132
void LanguageModel::InitForWord (const WERD_CHOICE *prev_word,
@@ -144,10 +139,10 @@ void LanguageModel::InitForWord(const WERD_CHOICE *prev_word,
144
139
correct_segmentation_explored_ = false ;
145
140
146
141
// Initialize vectors with beginning DawgInfos.
147
- very_beginning_active_dawgs_-> clear ();
148
- dict_->init_active_dawgs (very_beginning_active_dawgs_, false );
149
- beginning_active_dawgs_-> clear ();
150
- dict_->default_dawgs (beginning_active_dawgs_, false );
142
+ very_beginning_active_dawgs_. clear ();
143
+ dict_->init_active_dawgs (& very_beginning_active_dawgs_, false );
144
+ beginning_active_dawgs_. clear ();
145
+ dict_->default_dawgs (& beginning_active_dawgs_, false );
151
146
152
147
// Fill prev_word_str_ with the last language_model_ngram_order
153
148
// unichars from prev_word.
@@ -791,18 +786,18 @@ LanguageModelDawgInfo *LanguageModel::GenerateDawgInfo(
791
786
// Initialize active_dawgs from parent_vse if it is not NULL.
792
787
// Otherwise use very_beginning_active_dawgs_.
793
788
if (parent_vse == NULL ) {
794
- dawg_args_-> active_dawgs = very_beginning_active_dawgs_;
795
- dawg_args_-> permuter = NO_PERM;
789
+ dawg_args_. active_dawgs = & very_beginning_active_dawgs_;
790
+ dawg_args_. permuter = NO_PERM;
796
791
} else {
797
792
if (parent_vse->dawg_info == NULL ) return NULL ; // not a dict word path
798
- dawg_args_-> active_dawgs = &parent_vse->dawg_info ->active_dawgs ;
799
- dawg_args_-> permuter = parent_vse->dawg_info ->permuter ;
793
+ dawg_args_. active_dawgs = &parent_vse->dawg_info ->active_dawgs ;
794
+ dawg_args_. permuter = parent_vse->dawg_info ->permuter ;
800
795
}
801
796
802
797
// Deal with hyphenated words.
803
798
if (word_end && dict_->has_hyphen_end (b.unichar_id (), curr_col == 0 )) {
804
799
if (language_model_debug_level > 0 ) tprintf (" Hyphenated word found\n " );
805
- return new LanguageModelDawgInfo (dawg_args_-> active_dawgs ,
800
+ return new LanguageModelDawgInfo (dawg_args_. active_dawgs ,
806
801
COMPOUND_PERM);
807
802
}
808
803
@@ -815,7 +810,7 @@ LanguageModelDawgInfo *LanguageModel::GenerateDawgInfo(
815
810
// Do not allow compounding of words with lengths shorter than
816
811
// language_model_min_compound_length
817
812
if (parent_vse == NULL || word_end ||
818
- dawg_args_-> permuter == COMPOUND_PERM ||
813
+ dawg_args_. permuter == COMPOUND_PERM ||
819
814
parent_vse->length < language_model_min_compound_length) return NULL ;
820
815
821
816
int i;
@@ -835,7 +830,7 @@ LanguageModelDawgInfo *LanguageModel::GenerateDawgInfo(
835
830
if (!has_word_ending) return NULL ;
836
831
837
832
if (language_model_debug_level > 0 ) tprintf (" Compound word found\n " );
838
- return new LanguageModelDawgInfo (beginning_active_dawgs_, COMPOUND_PERM);
833
+ return new LanguageModelDawgInfo (& beginning_active_dawgs_, COMPOUND_PERM);
839
834
} // done dealing with compound words
840
835
841
836
LanguageModelDawgInfo *dawg_info = NULL ;
@@ -850,22 +845,22 @@ LanguageModelDawgInfo *LanguageModel::GenerateDawgInfo(
850
845
if (language_model_debug_level > 2 )
851
846
tprintf (" Test Letter OK for unichar %d, normed %d\n " ,
852
847
b.unichar_id (), normed_ids[i]);
853
- dict_->LetterIsOkay (dawg_args_, normed_ids[i],
848
+ dict_->LetterIsOkay (& dawg_args_, normed_ids[i],
854
849
word_end && i == normed_ids.size () - 1 );
855
- if (dawg_args_-> permuter == NO_PERM) {
850
+ if (dawg_args_. permuter == NO_PERM) {
856
851
break ;
857
852
} else if (i < normed_ids.size () - 1 ) {
858
- tmp_active_dawgs = *dawg_args_-> updated_dawgs ;
859
- dawg_args_-> active_dawgs = &tmp_active_dawgs;
853
+ tmp_active_dawgs = *dawg_args_. updated_dawgs ;
854
+ dawg_args_. active_dawgs = &tmp_active_dawgs;
860
855
}
861
856
if (language_model_debug_level > 2 )
862
857
tprintf (" Letter was OK for unichar %d, normed %d\n " ,
863
858
b.unichar_id (), normed_ids[i]);
864
859
}
865
- dawg_args_-> active_dawgs = NULL ;
866
- if (dawg_args_-> permuter != NO_PERM) {
867
- dawg_info = new LanguageModelDawgInfo (dawg_args_-> updated_dawgs ,
868
- dawg_args_-> permuter );
860
+ dawg_args_. active_dawgs = nullptr ;
861
+ if (dawg_args_. permuter != NO_PERM) {
862
+ dawg_info = new LanguageModelDawgInfo (dawg_args_. updated_dawgs ,
863
+ dawg_args_. permuter );
869
864
} else if (language_model_debug_level > 3 ) {
870
865
tprintf (" Letter %s not OK!\n " ,
871
866
dict_->getUnicharset ().id_to_unichar (b.unichar_id ()));
@@ -1320,7 +1315,7 @@ void LanguageModel::UpdateBestChoice(
1320
1315
// Update hyphen state if we are dealing with a dictionary word.
1321
1316
if (vse->dawg_info != NULL ) {
1322
1317
if (dict_->has_hyphen_end (*word)) {
1323
- dict_->set_hyphen_word (*word, *(dawg_args_-> active_dawgs ));
1318
+ dict_->set_hyphen_word (*word, *(dawg_args_. active_dawgs ));
1324
1319
} else {
1325
1320
dict_->reset_hyphen_vars (true );
1326
1321
}
0 commit comments