src/pitch/pitchspecacf.c: return NULL if fft creation failed
[aubio.git] / src / pitch / pitchspecacf.c
index a010041..051d90b 100644 (file)
@@ -42,15 +42,20 @@ aubio_pitchspecacf_t *
 new_aubio_pitchspecacf (uint_t bufsize)
 {
   aubio_pitchspecacf_t *p = AUBIO_NEW (aubio_pitchspecacf_t);
 new_aubio_pitchspecacf (uint_t bufsize)
 {
   aubio_pitchspecacf_t *p = AUBIO_NEW (aubio_pitchspecacf_t);
+  p->fft = new_aubio_fft (bufsize);
+  if (!p->fft) goto beach;
   p->win = new_aubio_window ("hanningz", bufsize);
   p->winput = new_fvec (bufsize);
   p->win = new_aubio_window ("hanningz", bufsize);
   p->winput = new_fvec (bufsize);
-  p->fft = new_aubio_fft (bufsize);
   p->fftout = new_fvec (bufsize);
   p->sqrmag = new_fvec (bufsize);
   p->acf = new_fvec (bufsize / 2 + 1);
   p->tol = 1.;
   p->confidence = 0.;
   return p;
   p->fftout = new_fvec (bufsize);
   p->sqrmag = new_fvec (bufsize);
   p->acf = new_fvec (bufsize / 2 + 1);
   p->tol = 1.;
   p->confidence = 0.;
   return p;
+
+beach:
+  AUBIO_FREE(p);
+  return NULL;
 }
 
 void
 }
 
 void