From 8216b952811977469974a16cca3456dd49e3874b Mon Sep 17 00:00:00 2001 From: Chris Kiefer Date: Fri, 30 Sep 2011 20:21:34 +0100 Subject: Deallocation issues --- ofxMaxim/ofxMaxim/libs/maxiFFT.cpp | 4 ++-- ofxMaxim/ofxMaxim/libs/maxiFFT.h | 3 ++- ofxMaxim/ofxMaxim/libs/maxiMFCC.cpp | 11 ++++++----- ofxMaxim/ofxMaxim/libs/maxiMFCC.h | 2 +- ofxMaxim/ofxMaxim/libs/maximilian.h | 4 ++-- 5 files changed, 13 insertions(+), 11 deletions(-) (limited to 'ofxMaxim') diff --git a/ofxMaxim/ofxMaxim/libs/maxiFFT.cpp b/ofxMaxim/ofxMaxim/libs/maxiFFT.cpp index 346b653..36034b2 100644 --- a/ofxMaxim/ofxMaxim/libs/maxiFFT.cpp +++ b/ofxMaxim/ofxMaxim/libs/maxiFFT.cpp @@ -120,8 +120,8 @@ float maxiFFT::spectralCentroid() { maxiFFT::~maxiFFT() { delete _fft; - delete[] buffer,magnitudes,phases,window; - delete avgPower; + if (buffer) + delete[] buffer,magnitudes,phases,window, avgPower; } diff --git a/ofxMaxim/ofxMaxim/libs/maxiFFT.h b/ofxMaxim/ofxMaxim/libs/maxiFFT.h index 6c07089..8a34c0d 100644 --- a/ofxMaxim/ofxMaxim/libs/maxiFFT.h +++ b/ofxMaxim/ofxMaxim/libs/maxiFFT.h @@ -42,7 +42,8 @@ class maxiFFT { public: maxiFFT(){ - _fft = 0; + _fft = NULL; + buffer = magnitudes = phases = window = avgPower = NULL; }; ~maxiFFT(); void setup(int fftSize, int windowSize, int hopSize); diff --git a/ofxMaxim/ofxMaxim/libs/maxiMFCC.cpp b/ofxMaxim/ofxMaxim/libs/maxiMFCC.cpp index befa5f4..6317ebb 100644 --- a/ofxMaxim/ofxMaxim/libs/maxiMFCC.cpp +++ b/ofxMaxim/ofxMaxim/libs/maxiMFCC.cpp @@ -193,13 +193,14 @@ void maxiMFCC::calcMelFilterBank(double sampleRate, int numBins){ maxiMFCC::~maxiMFCC() { - delete[] melFilters; - delete[] melBands; - delete[] dctMatrix; + if (melFilters) { + delete[] melFilters; + delete[] melBands; + delete[] dctMatrix; #ifdef __APPLE_CC__ - delete doubleSpec; + delete doubleSpec; #endif - + } } diff --git a/ofxMaxim/ofxMaxim/libs/maxiMFCC.h b/ofxMaxim/ofxMaxim/libs/maxiMFCC.h index 1a2b3a3..0f3d292 100644 --- a/ofxMaxim/ofxMaxim/libs/maxiMFCC.h +++ b/ofxMaxim/ofxMaxim/libs/maxiMFCC.h @@ -16,7 +16,7 @@ class maxiMFCC { public: - maxiMFCC(){}; + maxiMFCC():melFilters(NULL),dctMatrix(NULL), melBands(NULL){}; ~maxiMFCC(); void setup(unsigned int numBins, unsigned int numFilters, unsigned int numCoeffs, double minFreq, double maxFreq, unsigned int sampleRate); void mfcc(float* powerSpectrum, double *mfccs); diff --git a/ofxMaxim/ofxMaxim/libs/maximilian.h b/ofxMaxim/ofxMaxim/libs/maximilian.h index 166f590..6018992 100755 --- a/ofxMaxim/ofxMaxim/libs/maximilian.h +++ b/ofxMaxim/ofxMaxim/libs/maximilian.h @@ -187,7 +187,7 @@ public: ~maxiSample() { - delete myData; + if (myData) delete[] myData; myChunkSize = NULL; mySubChunk1Size = NULL; myFormat = NULL; @@ -199,7 +199,7 @@ public: myDataSize = NULL; } -// maxiSample(); + maxiSample():myData(NULL){}; bool load(string fileName); -- cgit v1.3