Merge branch 'fix/awhitening'
[aubio.git] / src / pitch / pitchspecacf.c
index a010041..170cfa3 100644 (file)
@@ -42,15 +42,20 @@ 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->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;
+
+beach:
+  AUBIO_FREE(p);
+  return NULL;
 }
 
 void
@@ -87,6 +92,7 @@ del_aubio_pitchspecacf (aubio_pitchspecacf_t * p)
   del_aubio_fft (p->fft);
   del_fvec (p->sqrmag);
   del_fvec (p->fftout);
+  del_fvec (p->acf);
   AUBIO_FREE (p);
 }