summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/sound/spureverb.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/sound/spureverb.cpp')
-rw-r--r--src/devices/sound/spureverb.cpp22
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