Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Factory:Rebuild
festival
speech_tools-null-fragile.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File speech_tools-null-fragile.patch of Package festival
diff -Naru speech_tools_orig/intonation/tilt/tilt_synthesis.cc speech_tools/intonation/tilt/tilt_synthesis.cc --- speech_tools_orig/intonation/tilt/tilt_synthesis.cc 2017-09-05 00:54:03.000000000 +0900 +++ speech_tools/intonation/tilt/tilt_synthesis.cc 2020-06-19 14:56:04.264646395 +0900 @@ -126,7 +126,7 @@ n = (int)(ceil((ev.tail()->F("time") + ev.tail()->F("rfc.fall_dur",0)) / f_shift)) + 1; else - n = (int)(ceil(ev.tail()->F("time")/ f_shift)) + 1; + n = (int)(ceil(((ev.tail() != NULL) ? ev.tail()->F("time") : 0)/ f_shift)) + 1; fz.resize(n, 1); fz.set_equal_space(true); diff -Naru speech_tools_orig/intonation/tilt/tilt_utils.cc speech_tools/intonation/tilt/tilt_utils.cc --- speech_tools_orig/intonation/tilt/tilt_utils.cc 2017-09-05 00:54:03.000000000 +0900 +++ speech_tools/intonation/tilt/tilt_utils.cc 2020-06-19 14:55:23.216409043 +0900 @@ -409,7 +409,7 @@ int event_item(EST_Item &e) { - return e.I("int_event", 0); + return ((e != NULL) ? e.I("int_event", 0) : 0); } int sil_item(EST_Item &e) { diff -Naru speech_tools_orig/ling_class/EST_Relation.cc speech_tools/ling_class/EST_Relation.cc --- speech_tools_orig/ling_class/EST_Relation.cc 2017-09-05 00:54:03.000000000 +0900 +++ speech_tools/ling_class/EST_Relation.cc 2020-06-19 15:06:09.700138798 +0900 @@ -164,6 +164,8 @@ void EST_Relation::remove_item(EST_Item *node) { + if (node == NULL) return; + if (p_head == node) p_head = inext(node); if (p_tail == node) diff -Naru speech_tools_orig/ling_class/EST_relation_aux.cc speech_tools/ling_class/EST_relation_aux.cc --- speech_tools_orig/ling_class/EST_relation_aux.cc 2017-09-05 00:54:03.000000000 +0900 +++ speech_tools/ling_class/EST_relation_aux.cc 2020-06-19 16:20:43.036864073 +0900 @@ -403,16 +403,18 @@ float kstart; slist.clear(); - - if ((keylab.tail())->F("end") < (lab.tail())->F("end")) - { + + if ((keylab.tail() != NULL) && (lab.tail() != NULL)) { + if ((keylab.tail())->F("end") < (lab.tail())->F("end")) + { cerr << "Key file must extend beyond end of label file\n"; return -1; + } } // find a the first keylab that will make a non-empty file for (k = keylab.head(); k ; k = inext(k)) - if (k->F("end") > lab.head()->F("end")) + if (k->F("end") > ((lab.head() != NULL) ? lab.head()->F("end") : 0)) break; filename = (EST_String)k->f("file"); @@ -475,15 +477,17 @@ float kstart; mlf.clear(); - - if ((keylab.tail())->F("end") < (lab.tail())->F("end")) - { + + if ((keylab.tail() != NULL) && (lab.tail() != NULL)) { + if ((keylab.tail())->F("end") < (lab.tail())->F("end")) + { cerr << "Key file must extend beyond end of label file\n"; return -1; + } } k = keylab.head(); - a.f.set("name", (k->name() + ext)); + a.f.set("name", ((k != NULL) ? (k->name() + ext) : ext)); kstart = 0.0; for (s = lab.head(); s; s = inext(s)) @@ -544,19 +548,23 @@ } } + if (target.head() != NULL) { if (!target.head()->f_present(time_name + "end")) { target.head()->set(time_name + "end", first_end / 2.0); if (do_start) target.head()->set(time_name + "start", 0.0); } + } + if (target.tail() != NULL) { if (!target.tail()->f_present(time_name + "end")) { target.tail()->set(time_name + "end", last_end + 0.01); if (do_start) target.tail()->set(time_name + "start", last_end); } + } for (s = target.head(); s; s = inext(s)) { @@ -624,7 +632,7 @@ // fix option later. if (al.present("-extend")) al.override_fval("-length", - al.fval("-extend",0) * lab.tail()->F("end")); + al.fval("-extend",0) * ((lab.tail() != NULL) ? lab.tail()->F("end") : 0)); // quantize (ie round up or down) label times if (al.present("-q")) diff -Naru speech_tools_orig/ling_class/EST_relation_track.cc speech_tools/ling_class/EST_relation_track.cc --- speech_tools_orig/ling_class/EST_relation_track.cc 2017-09-05 00:54:03.000000000 +0900 +++ speech_tools/ling_class/EST_relation_track.cc 2020-06-19 14:52:03.227252627 +0900 @@ -139,7 +139,7 @@ int i; int n, endn; - n = (int)ceil(lab.tail()->F("end")/shift); + n = (int)ceil( ((lab.tail() != NULL) ? lab.tail()->F("end") : 0)/shift); endn = (req_l > 0.0) ? (int)(req_l /shift) : n; // cout << req_l << endl; diff -Naru speech_tools_orig/main/align_main.cc speech_tools/main/align_main.cc --- speech_tools_orig/main/align_main.cc 2017-09-05 00:54:03.000000000 +0900 +++ speech_tools/main/align_main.cc 2020-06-19 16:22:59.381551844 +0900 @@ -188,6 +188,7 @@ load_sentence(u,"hypo",hts); r = u.relation("ref")->rlast(); h = u.relation("hypo")->rlast(); + if ((r != NULL) && (h != NULL)) { if ((!r->name().matches(id)) || (r->name() != h->name())) { @@ -214,6 +215,7 @@ s_sub += sub; s_correct += correct; } + } sents++; } @@ -311,6 +313,9 @@ static int name_distance(EST_Item *r,EST_Item *h) { + if ((r == NULL) && (h == NULL)) return 0; + if ((r == NULL) || (h == NULL)) return 1; + EST_String rname = r->name(); EST_String hname = h->name(); if ((rname == hname) || diff -Naru speech_tools_orig/speech_class/EST_wave_cuts.cc speech_tools/speech_class/EST_wave_cuts.cc --- speech_tools_orig/speech_class/EST_wave_cuts.cc 2017-09-05 00:54:03.000000000 +0900 +++ speech_tools/speech_class/EST_wave_cuts.cc 2020-06-19 14:54:13.180004065 +0900 @@ -140,17 +140,19 @@ int i, j, l, n; mtfr.clear(); - - if ((key.tail())->F("end") < (fv.t(fv.num_frames() - 1))) - { + + if (key.tail() != NULL) { + if ((key.tail())->F("end") < (fv.t(fv.num_frames() - 1))) + { cerr << "Key file must extend beyond end of EST_Track\n"; cerr << "key end: " << key.tail()->F("end") << " EST_Track end: " << fv.t(fv.num_frames() - 1) << endl; return -1; + } } k = key.head(); - a.set_name(k->name()); + a.set_name((k != NULL) ? k->name() : 0); kstart = 0.0; length = end(*k) - kstart;
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor