| 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) |