Skip to content

Commit 93aa1d0

Browse files
committed
Fix memory issues on freeverb side
Signed-off-by: falkTX <falktx@falktx.com>
1 parent d90eed3 commit 93aa1d0

3 files changed

Lines changed: 16 additions & 13 deletions

File tree

freeverb/allpass.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,20 @@ class allpass
2121

2222
~allpass()
2323
{
24-
if (buffer) delete buffer;
24+
if (buffer) delete[] buffer;
2525
};
2626

2727
void makebuffer(float *buf, int size)
2828
{
29-
if (buffer) delete buffer;
29+
if (buffer) delete[] buffer;
3030
buffer = new float[size];
3131
bufsize = size;
3232
bufidx = 0;
3333
}
3434

3535
void deletebuffer()
3636
{
37-
if(buffer) delete buffer;
37+
if(buffer) delete[] buffer;
3838
bufsize = 0;
3939
};
4040

freeverb/comb.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,20 @@ class comb
2323

2424
~comb()
2525
{
26-
if (buffer) delete buffer;
26+
if (buffer) delete[] buffer;
2727
};
2828

2929
void makebuffer(float *buf, int size)
3030
{
31-
if (buffer) {delete buffer;}
31+
if (buffer) {delete[] buffer;}
3232
buffer = new float[size];
3333
bufsize = size;
3434
bufidx = 0;
3535
}
3636

3737
void deletebuffer()
3838
{
39-
if(buffer) delete buffer;
39+
if(buffer) delete[] buffer;
4040
bufsize = 0;
4141
};
4242

freeverb/revmodel.cpp

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -73,13 +73,16 @@ void revmodel::init(const float sampleRate)
7373

7474
feedback_allpass = 0.5;
7575

76-
setwet(initialwet);
77-
setroomsize(initialroom);
78-
setdry(initialdry);
79-
setdamp(initialdamp);
80-
setwidth(initialwidth);
81-
setmode(initialmode);
82-
76+
// safely initialize all values first
77+
wet = initialwet * scalewet;
78+
roomsize = (initialroom * scaleroom) + offsetroom;
79+
dry = initialdry * scaledry;
80+
damp = initialdamp * scaledamp * sqrt(conversion);
81+
width = initialwidth;
82+
mode = initialmode;
83+
84+
// now we can call update after all values are initialized
85+
update();
8386

8487
// Buffer will be full of rubbish - so we MUST mute them
8588
mute();

0 commit comments

Comments
 (0)