size = GetFileLength(fname); | size = GetFileLength(fname); | ||||
if (tr->data_dictlist != NULL) { | if (tr->data_dictlist != NULL) { | ||||
Free(tr->data_dictlist); | |||||
free(tr->data_dictlist); | |||||
tr->data_dictlist = NULL; | tr->data_dictlist = NULL; | ||||
} | } | ||||
return p; | return p; | ||||
} | } | ||||
void Free(void *ptr) | |||||
{ | |||||
if (ptr != NULL) | |||||
free(ptr); | |||||
} | |||||
#pragma GCC visibility push(default) | #pragma GCC visibility push(default) | ||||
ESPEAK_NG_API void espeak_ng_InitializePath(const char *path) | ESPEAK_NG_API void espeak_ng_InitializePath(const char *path) | ||||
out_samplerate = 0; | out_samplerate = 0; | ||||
} | } | ||||
#endif | #endif | ||||
Free(event_list); | |||||
free(event_list); | |||||
event_list = NULL; | event_list = NULL; | ||||
Free(outbuf); | |||||
free(outbuf); | |||||
outbuf = NULL; | outbuf = NULL; | ||||
FreePhData(); | FreePhData(); | ||||
FreeVoiceList(); | FreeVoiceList(); |
extern ESPEAK_NG_API void strncpy0(char *to, const char *from, int size); | extern ESPEAK_NG_API void strncpy0(char *to, const char *from, int size); | ||||
extern ESPEAK_NG_API int GetFileLength(const char *filename); | extern ESPEAK_NG_API int GetFileLength(const char *filename); | ||||
char *Alloc(int size); | char *Alloc(int size); | ||||
void Free(void *ptr); | |||||
#ifdef __cplusplus | #ifdef __cplusplus | ||||
} | } |
return create_file_error_context(context, errno, buf); | return create_file_error_context(context, errno, buf); | ||||
if (*ptr != NULL) | if (*ptr != NULL) | ||||
Free(*ptr); | |||||
free(*ptr); | |||||
if ((*ptr = Alloc(length)) == NULL) { | if ((*ptr = Alloc(length)) == NULL) { | ||||
fclose(f_in); | fclose(f_in); | ||||
if (fread(*ptr, 1, length, f_in) != length) { | if (fread(*ptr, 1, length, f_in) != length) { | ||||
int error = errno; | int error = errno; | ||||
fclose(f_in); | fclose(f_in); | ||||
Free(*ptr); | |||||
free(*ptr); | |||||
return create_file_error_context(context, error, buf); | return create_file_error_context(context, error, buf); | ||||
} | } | ||||
void FreePhData(void) | void FreePhData(void) | ||||
{ | { | ||||
Free(phoneme_tab_data); | |||||
Free(phoneme_index); | |||||
Free(phondata_ptr); | |||||
Free(tunes); | |||||
free(phoneme_tab_data); | |||||
free(phoneme_index); | |||||
free(phondata_ptr); | |||||
free(tunes); | |||||
phoneme_tab_data = NULL; | phoneme_tab_data = NULL; | ||||
phoneme_index = NULL; | phoneme_index = NULL; | ||||
phondata_ptr = NULL; | phondata_ptr = NULL; |
void DeleteTranslator(Translator *tr) | void DeleteTranslator(Translator *tr) | ||||
{ | { | ||||
if (tr->data_dictlist != NULL) | if (tr->data_dictlist != NULL) | ||||
Free(tr->data_dictlist); | |||||
Free(tr); | |||||
free(tr->data_dictlist); | |||||
free(tr); | |||||
} | } | ||||
int lookupwchar(const unsigned short *list, int c) | int lookupwchar(const unsigned short *list, int c) |