diff options
author | Sakari Bergen <sakari.bergen@beatwaves.net> | 2008-10-11 09:25:43 +0000 |
---|---|---|
committer | Sakari Bergen <sakari.bergen@beatwaves.net> | 2008-10-11 09:25:43 +0000 |
commit | 01b1790c98f9ee6739681f1dc8fe529c3ca7160a (patch) | |
tree | fec05b6d2d5cd6ea500e5ac3da603adcae1bcab4 /libs | |
parent | e17e94e55f481e3aff1e601aff914f7f983af8d0 (diff) |
Fix some stupid, stupid, stupid memory leaks in export utilities
git-svn-id: svn://localhost/ardour2/branches/3.0@3913 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/export_utilities.cc | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/libs/ardour/export_utilities.cc b/libs/ardour/export_utilities.cc index a9223e2e1b..aee5fa21ac 100644 --- a/libs/ardour/export_utilities.cc +++ b/libs/ardour/export_utilities.cc @@ -55,6 +55,9 @@ namespace ARDOUR SampleRateConverter::SampleRateConverter (uint32_t channels, nframes_t in_rate, nframes_t out_rate, int quality) : channels (channels), leftover_frames (0), + max_leftover_frames (0), + frames_in (0), + frames_out(0), data_in (0), leftover_data (0), data_out (0), @@ -102,7 +105,9 @@ SampleRateConverter::process (float * data, nframes_t frames) nframes_t out_samples_max = (nframes_t) ceil (frames * src_data.src_ratio * channels); if (data_out_size < out_samples_max) { - free (data_out); + if (data_out) { + delete[] data_out; + } data_out = new float[out_samples_max]; src_data.data_out = data_out; @@ -229,7 +234,7 @@ SampleFormatConverter<TOut>::~SampleFormatConverter () gdither_free (dither); } if (data_out) { - delete data_out; + delete[] data_out; } } @@ -241,7 +246,9 @@ SampleFormatConverter<TOut>::process (float * data, nframes_t frames) size_t data_size = channels * frames * sizeof (TOut); if (data_size > data_out_size) { - free (data_out); + if (data_out) { + delete[] data_out; + } data_out = new TOut[data_size]; data_out_size = data_size; } |