Mark re-used ph_list2 array as undefined

And fix looking after end of array.
This commit is contained in:
Samuel Thibault
2022-04-13 23:23:51 +02:00
parent cb35b95f67
commit f1ce2ec423
2 changed files with 3 additions and 1 deletions
+1 -1
View File
@@ -72,7 +72,7 @@ static int SubstitutePhonemes(PHONEME_LIST *plist_out)
next = phoneme_tab[ph_list2[ix+1].phcode];
word_end = false;
if ((plist2+1)->sourceix || ((next != 0) && (next->type == phPAUSE)))
if (ix == n_ph_list2 -1 || (plist2+1)->sourceix || ((next != 0) && (next->type == phPAUSE)))
word_end = true; // this phoneme is the end of a word
// check whether a Voice has specified that we should replace this phoneme
+2
View File
@@ -42,6 +42,7 @@
#include "synthesize.h" // for PHONEME_LIST2, N_PHONEME_LIST, PHON...
#include "ucd/ucd.h" // for ucd_toupper
#include "voice.h" // for voice, voice_t
#include "speech.h" // for MAKE_MEM_UNDEFINED
Translator *translator = NULL; // the main translator
Translator *translator2 = NULL; // secondary translator for certain words
@@ -2045,6 +2046,7 @@ void TranslateClause(Translator *tr, int *tone_out, char **voice_change)
}
}
MAKE_MEM_UNDEFINED(&ph_list2, sizeof(ph_list2));
memset(&ph_list2[0], 0, sizeof(ph_list2[0]));
ph_list2[0].phcode = phonPAUSE_SHORT;