Skip to content

Commit 9226bf7

Browse files
committed
Fix potential memory leaks
1 parent 507e07e commit 9226bf7

5 files changed

Lines changed: 24 additions & 14 deletions

File tree

Source/Plugins/BasicSpikeDisplay/SpikeDetector/SpikeDetector.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ SpikeDetector::SpikeDetector()
6262
electrodeCounter.add(0);
6363
}
6464

65-
spikeBuffer = new uint8_t[MAX_SPIKE_BUFFER_LEN]; // MAX_SPIKE_BUFFER_LEN defined in SpikeObject.h
65+
//spikeBuffer = new uint8_t[MAX_SPIKE_BUFFER_LEN]; // MAX_SPIKE_BUFFER_LEN defined in SpikeObject.h
66+
spikeBuffer.malloc(MAX_SPIKE_BUFFER_LEN);
6667

6768
}
6869

@@ -235,9 +236,9 @@ int SpikeDetector::getChannel(int index, int i)
235236
return *(electrodes[index]->channels+i);
236237
}
237238

238-
Array<SimpleElectrode*> SpikeDetector::getElectrodes()
239+
void SpikeDetector::getElectrodes(Array<SimpleElectrode*>& electrodeArray)
239240
{
240-
return electrodes;
241+
electrodeArray.addArray(electrodes);
241242
}
242243

243244
SimpleElectrode* SpikeDetector::setCurrentElectrodeIndex(int i)

Source/Plugins/BasicSpikeDisplay/SpikeDetector/SpikeDetector.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ class SpikeDetector : public GenericProcessor
136136
StringArray getElectrodeNames();
137137

138138
/** Returns array of electrodes. */
139-
Array<SimpleElectrode*> getElectrodes();
139+
void getElectrodes(Array<SimpleElectrode*>& electrodeArray);
140140

141141
/** Returns array of electrodes. */
142142
SimpleElectrode* getActiveElectrode();
@@ -176,10 +176,11 @@ class SpikeDetector : public GenericProcessor
176176
int currentChannelIndex;
177177
int currentIndex;
178178

179-
uint8_t* spikeBuffer;///[256];
179+
// uint8_t* spikeBuffer;///[256];
180+
HeapBlock<uint8_t> spikeBuffer;
180181
int64 timestamp;
181182

182-
Array<SimpleElectrode*> electrodes;
183+
OwnedArray<SimpleElectrode> electrodes;
183184
int uniqueID;
184185

185186
// void createSpikeEvent(int& peakIndex,

Source/Plugins/BasicSpikeDisplay/SpikeDetector/SpikeDetectorEditor.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,8 @@ void SpikeDetectorEditor::buttonEvent(Button* button)
332332

333333
SpikeDetector* processor = (SpikeDetector*) getProcessor();
334334

335-
Array<SimpleElectrode*> electrodes = processor->getElectrodes();
335+
Array<SimpleElectrode*> electrodes;
336+
processor->getElectrodes(electrodes);
336337

337338
for (int i = 0; i < electrodes.size(); i++)
338339
{

Source/Processors/RecordNode/OriginalRecording.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,14 @@ OriginalRecording::OriginalRecording() : separateFiles(false),
2929
recordingNumber(0), experimentNumber(0), zeroBuffer(1, 50000),
3030
eventFile(nullptr), messageFile(nullptr), lastProcId(0)
3131
{
32-
continuousDataIntegerBuffer = new int16[10000];
32+
/*continuousDataIntegerBuffer = new int16[10000];
3333
continuousDataFloatBuffer = new float[10000];
3434
35-
recordMarker = new char[10];
35+
recordMarker = new char[10];*/
36+
continuousDataIntegerBuffer.malloc(10000);
37+
continuousDataFloatBuffer.malloc(10000);
38+
recordMarker.malloc(10);
39+
3640
for (int i = 0; i < 9; i++)
3741
{
3842
recordMarker[i] = i;
@@ -53,9 +57,9 @@ OriginalRecording::~OriginalRecording()
5357
{
5458
if (spikeFileArray[i] != nullptr) fclose(spikeFileArray[i]);
5559
}
56-
delete continuousDataFloatBuffer;
60+
/* delete continuousDataFloatBuffer;
5761
delete continuousDataIntegerBuffer;
58-
delete recordMarker;
62+
delete recordMarker;*/
5963
}
6064

6165
String OriginalRecording::getEngineID()

Source/Processors/RecordNode/OriginalRecording.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,15 +88,18 @@ class OriginalRecording : public RecordEngine
8888
/** Holds data that has been converted from float to int16 before
8989
saving.
9090
*/
91-
int16* continuousDataIntegerBuffer;
91+
HeapBlock<int16> continuousDataIntegerBuffer;
92+
//int16* continuousDataIntegerBuffer;
9293

9394
/** Holds data that has been converted from float to int16 before
9495
saving.
9596
*/
96-
float* continuousDataFloatBuffer;
97+
HeapBlock<float> continuousDataFloatBuffer;
98+
//float* continuousDataFloatBuffer;
9799

98100
/** Used to indicate the end of each record */
99-
char* recordMarker;
101+
HeapBlock<char> recordMarker;
102+
//char* recordMarker;
100103

101104
AudioSampleBuffer zeroBuffer;
102105

0 commit comments

Comments
 (0)