{
TessLangModEdge *tess_lm_edge =
reinterpret_cast<TessLangModEdge *>(lang_mod_edge);
LangModEdge **edge_array =
NULL;
(*edge_cnt) = 0;
if (tess_lm_edge ==
NULL) {
int dawg_cnt = NumDawgs();
(*edge_cnt) = dawg_cnt * max_edge_;
edge_array = new LangModEdge *[(*edge_cnt)];
if (edge_array ==
NULL) {
}
for (int dawg_idx = (*edge_cnt) = 0; dawg_idx < dawg_cnt; dawg_idx++) {
const Dawg *curr_dawg = GetDawg(dawg_idx);
(*edge_cnt) += FanOut(alt_list, curr_dawg, 0, 0,
NULL,
true,
edge_array + (*edge_cnt));
}
}
(*edge_cnt) += FanOut(alt_list, number_dawg_, 0, 0,
NULL,
true,
edge_array + (*edge_cnt));
(*edge_cnt) += FanOut(alt_list, ood_dawg_, 0, 0,
NULL,
true,
edge_array + (*edge_cnt));
for (int edge_idx = 0; edge_idx < (*edge_cnt); edge_idx++) {
edge_array[edge_idx]->SetRoot(true);
}
} else {
(*edge_cnt) = max_edge_;
edge_array = new LangModEdge *[(*edge_cnt)];
if (edge_array ==
NULL) {
}
(*edge_cnt) = FanOut(alt_list,
tess_lm_edge->GetDawg(),
tess_lm_edge->EndEdge(), tess_lm_edge->EdgeMask(),
tess_lm_edge->EdgeString(), false, edge_array);
}
return edge_array;
}