AUDIO: Free strings with delete[] instead of free()
Because scumm_strdup(), unlike strdup(), allocates strings with new, not malloc(). (CID 1395228, 1395233, 1395235, 1395236)
This commit is contained in:
parent
bfded21849
commit
54d7336d08
1 changed files with 7 additions and 4 deletions
|
@ -87,18 +87,21 @@ MidiDriver_FluidSynth::MidiDriver_FluidSynth(Audio::Mixer *mixer)
|
|||
_outputRate = 96000;
|
||||
}
|
||||
|
||||
// The string duplication below is there only because older versions (1.1.6
|
||||
// and earlier?) of FluidSynth expected the string parameters to be non-const.
|
||||
|
||||
void MidiDriver_FluidSynth::setInt(const char *name, int val) {
|
||||
char *name2 = scumm_strdup(name);
|
||||
|
||||
fluid_settings_setint(_settings, name2, val);
|
||||
free(name2);
|
||||
delete[] name2;
|
||||
}
|
||||
|
||||
void MidiDriver_FluidSynth::setNum(const char *name, double val) {
|
||||
char *name2 = scumm_strdup(name);
|
||||
|
||||
fluid_settings_setnum(_settings, name2, val);
|
||||
free(name2);
|
||||
delete[] name2;
|
||||
}
|
||||
|
||||
void MidiDriver_FluidSynth::setStr(const char *name, const char *val) {
|
||||
|
@ -106,8 +109,8 @@ void MidiDriver_FluidSynth::setStr(const char *name, const char *val) {
|
|||
char *val2 = scumm_strdup(val);
|
||||
|
||||
fluid_settings_setstr(_settings, name2, val2);
|
||||
free(name2);
|
||||
free(val2);
|
||||
delete[] name2;
|
||||
delete[] val2;
|
||||
}
|
||||
|
||||
int MidiDriver_FluidSynth::open() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue