|
|
@@ -79,8 +79,15 @@ static espeak_ng_STATUS ReadPhFile(void **ptr, const char *fname, int *size, esp |
|
|
|
if ((f_in = fopen(buf, "rb")) == NULL) |
|
|
|
return create_file_error_context(context, errno, buf); |
|
|
|
|
|
|
|
if (*ptr != NULL) |
|
|
|
if (*ptr != NULL) { |
|
|
|
free(*ptr); |
|
|
|
*ptr = NULL; |
|
|
|
} |
|
|
|
|
|
|
|
if (length == 0) { |
|
|
|
*ptr = NULL; |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
if ((*ptr = malloc(length)) == NULL) { |
|
|
|
fclose(f_in); |
|
|
@@ -90,6 +97,7 @@ static espeak_ng_STATUS ReadPhFile(void **ptr, const char *fname, int *size, esp |
|
|
|
int error = errno; |
|
|
|
fclose(f_in); |
|
|
|
free(*ptr); |
|
|
|
*ptr = NULL; |
|
|
|
return create_file_error_context(context, error, buf); |
|
|
|
} |
|
|
|
|
|
|
@@ -122,9 +130,11 @@ espeak_ng_STATUS LoadPhData(int *srate, espeak_ng_ERROR_CONTEXT *context) |
|
|
|
// read the version number and sample rate from the first 8 bytes of phondata |
|
|
|
version = 0; // bytes 0-3, version number |
|
|
|
rate = 0; // bytes 4-7, sample rate |
|
|
|
for (ix = 0; ix < 4; ix++) { |
|
|
|
version += (wavefile_data[ix] << (ix*8)); |
|
|
|
rate += (wavefile_data[ix+4] << (ix*8)); |
|
|
|
if (wavefile_data) { |
|
|
|
for (ix = 0; ix < 4; ix++) { |
|
|
|
version += (wavefile_data[ix] << (ix*8)); |
|
|
|
rate += (wavefile_data[ix+4] << (ix*8)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (version != version_phdata) |