diff options
Diffstat (limited to 'src/devices/sound/spureverb.cpp')
-rw-r--r-- | src/devices/sound/spureverb.cpp | 22 |
1 files changed, 5 insertions, 17 deletions
diff --git a/src/devices/sound/spureverb.cpp b/src/devices/sound/spureverb.cpp index cf747af1acb..2bd3c3244bd 100644 --- a/src/devices/sound/spureverb.cpp +++ b/src/devices/sound/spureverb.cpp @@ -34,15 +34,11 @@ spu_device::reverb::reverb(const int hz, const int maxdelay) for (int c=0; c<2; c++) { for (int f=0; f<4; f++) { - y[c][f]=new signed short [maxdelay]; - memset(y[c][f], 0, sizeof(signed short) * maxdelay); + y[c][f]=make_unique_clear<signed short []>(maxdelay); } - x[c]=new signed short [maxdelay]; - memset(x[c], 0, sizeof(signed short) * maxdelay); - ax[c]=new signed short [maxdelay]; - memset(ax[c], 0, sizeof(signed short) * maxdelay); - ay[c]=new signed short [maxdelay]; - memset(ay[c], 0, sizeof(signed short) * maxdelay); + x[c]=make_unique_clear<signed short []>(maxdelay); + ax[c]=make_unique_clear<signed short []>(maxdelay); + ay[c]=make_unique_clear<signed short []>(maxdelay); } memset(bx1,0,sizeof(bx1)); memset(by1,0,sizeof(by1)); @@ -54,14 +50,6 @@ spu_device::reverb::reverb(const int hz, const int maxdelay) spu_device::reverb::~reverb() { - for (int c=0; c<2; c++) - { - for (int f=0; f<4; f++) - global_free_array(y[c][f]); - global_free_array(x[c]); - global_free_array(ax[c]); - global_free_array(ay[c]); - } } // @@ -320,7 +308,7 @@ void spu_device::reverb::process(signed short *output, signed short *sp=(signed short *)reverb_input, *dp=(signed short *)output; - if (rp->band_gain>0.0f) + if (rp && rp->band_gain>0.0f) { // Do reverb processing |