diff options
Diffstat (limited to 'libs/ardour/ardour/dsp_filter.h')
-rw-r--r-- | libs/ardour/ardour/dsp_filter.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/libs/ardour/ardour/dsp_filter.h b/libs/ardour/ardour/dsp_filter.h index 6220dddf5a..50fe1ff704 100644 --- a/libs/ardour/ardour/dsp_filter.h +++ b/libs/ardour/ardour/dsp_filter.h @@ -48,12 +48,13 @@ namespace ARDOUR { namespace DSP { */ class DspShm { public: - DspShm () + DspShm (size_t s = 0) : _data (0) , _size (0) { assert (sizeof(float) == sizeof (int32_t)); assert (sizeof(float) == sizeof (int)); + allocate (s); } ~DspShm () { @@ -65,6 +66,7 @@ namespace ARDOUR { namespace DSP { * @param s size, total number of float or integer elements to store. */ void allocate (size_t s) { + if (s == _size) { return; } _data = realloc (_data, sizeof(float) * s); if (_data) { _size = s; } } |