diff options
-rw-r--r-- | libs/fluidsynth/src/fluid_midi.c | 13 | ||||
-rw-r--r-- | libs/fluidsynth/src/fluid_settings.c | 2 | ||||
-rw-r--r-- | libs/fluidsynth/src/fluid_settings.h | 2 | ||||
-rw-r--r-- | libs/fluidsynth/src/fluid_synth.c | 6 | ||||
-rwxr-xr-x | tools/update_fluidsynth.sh | 3 |
5 files changed, 20 insertions, 6 deletions
diff --git a/libs/fluidsynth/src/fluid_midi.c b/libs/fluidsynth/src/fluid_midi.c index 171952fcae..fc58d839ef 100644 --- a/libs/fluidsynth/src/fluid_midi.c +++ b/libs/fluidsynth/src/fluid_midi.c @@ -372,10 +372,17 @@ fluid_midi_file_read_track(fluid_midi_file *mf, fluid_player_t *player, int num) } /* Skip remaining track data, if any */ - if (mf->trackpos < mf->tracklen) - fluid_midi_file_skip(mf, mf->tracklen - mf->trackpos); + if (mf->trackpos < mf->tracklen) { + if (fluid_midi_file_skip(mf, mf->tracklen - mf->trackpos) != FLUID_OK) { + delete_fluid_track(track); + return FLUID_FAILED; + } + } - fluid_player_add_track(player, track); + if (fluid_player_add_track(player, track) != FLUID_OK) { + delete_fluid_track(track); + return FLUID_FAILED; + } } else { found_track = 0; diff --git a/libs/fluidsynth/src/fluid_settings.c b/libs/fluidsynth/src/fluid_settings.c index 56de8c71d7..181484ecc3 100644 --- a/libs/fluidsynth/src/fluid_settings.c +++ b/libs/fluidsynth/src/fluid_settings.c @@ -443,7 +443,7 @@ fluid_settings_set(fluid_settings_t* settings, const char *name, void* value) /** returns 1 if the value has been registered correctly, 0 otherwise */ int -fluid_settings_register_str(fluid_settings_t* settings, char* name, char* def, int hints, +fluid_settings_register_str(fluid_settings_t* settings, const char* name, const char* def, int hints, fluid_str_update_t fun, void* data) { fluid_setting_node_t *node; diff --git a/libs/fluidsynth/src/fluid_settings.h b/libs/fluidsynth/src/fluid_settings.h index 0eb1f97286..244f0b457b 100644 --- a/libs/fluidsynth/src/fluid_settings.h +++ b/libs/fluidsynth/src/fluid_settings.h @@ -37,7 +37,7 @@ typedef int (*fluid_int_update_t)(void* data, const char* name, int value); /** returns 0 if the value has been registered correctly, non-zero otherwise */ -int fluid_settings_register_str(fluid_settings_t* settings, char* name, char* def, int hints, +int fluid_settings_register_str(fluid_settings_t* settings, const char* name, const char* def, int hints, fluid_str_update_t fun, void* data); /** returns 0 if the value has been registered correctly, non-zero diff --git a/libs/fluidsynth/src/fluid_synth.c b/libs/fluidsynth/src/fluid_synth.c index a12260c7b0..8a30e250ba 100644 --- a/libs/fluidsynth/src/fluid_synth.c +++ b/libs/fluidsynth/src/fluid_synth.c @@ -2544,6 +2544,12 @@ fluid_synth_process(fluid_synth_t* synth, int len, int nin, float** in, int i; left = FLUID_ARRAY(float*, nout/2); right = FLUID_ARRAY(float*, nout/2); + if ((left == NULL) || (right == NULL)) { + FLUID_LOG(FLUID_ERR, "Out of memory."); + FLUID_FREE(left); + FLUID_FREE(right); + return FLUID_FAILED; + } for(i=0; i<nout/2; i++) { left[i] = out[2*i]; right[i] = out[2*i+1]; diff --git a/tools/update_fluidsynth.sh b/tools/update_fluidsynth.sh index 66ad7835fa..785d68bc0f 100755 --- a/tools/update_fluidsynth.sh +++ b/tools/update_fluidsynth.sh @@ -20,7 +20,8 @@ echo $TMP trap "rm -rf $TMP" EXIT cd $TMP -git clone git://git.code.sf.net/p/fluidsynth/code-git fs-git +#git clone git://git.code.sf.net/p/fluidsynth/code-git fs-git +git clone git://github.com/FluidSynth/fluidsynth.git fs-git FSR=fs-git/fluidsynth/ |