src/pitch/pitchyinfft.c: return NULL if fft creation failed
[aubio.git] / src / pitch / pitchyinfft.c
index 98de63c..9243e24 100644 (file)
@@ -62,6 +62,7 @@ new_aubio_pitchyinfft (uint_t samplerate, uint_t bufsize)
   aubio_pitchyinfft_t *p = AUBIO_NEW (aubio_pitchyinfft_t);
   p->winput = new_fvec (bufsize);
   p->fft = new_aubio_fft (bufsize);
+  if (!p->fft) goto beach;
   p->fftout = new_fvec (bufsize);
   p->sqrmag = new_fvec (bufsize);
   p->yinfft = new_fvec (bufsize / 2 + 1);
@@ -95,6 +96,11 @@ new_aubio_pitchyinfft (uint_t samplerate, uint_t bufsize)
   // check for octave errors above 1300 Hz
   p->short_period = (uint_t)ROUND(samplerate / 1300.);
   return p;
+
+beach:
+  if (p->winput) del_fvec(p->winput);
+  AUBIO_FREE(p);
+  return NULL;
 }
 
 void