[io] always call del_aubio_sink
authorPaul Brossier <piem@piem.org>
Sun, 16 Dec 2018 18:11:47 +0000 (19:11 +0100)
committerPaul Brossier <piem@piem.org>
Sun, 16 Dec 2018 18:11:47 +0000 (19:11 +0100)
src/io/sink.c

index 70383cc..f8ac5fd 100644 (file)
@@ -102,7 +102,7 @@ aubio_sink_t * new_aubio_sink(const char_t * uri, uint_t samplerate) {
   !defined(HAVE_SINK_APPLE_AUDIO)
   AUBIO_ERROR("sink: failed creating '%s' at %dHz (no sink built-in)\n", uri, samplerate);
 #endif
   !defined(HAVE_SINK_APPLE_AUDIO)
   AUBIO_ERROR("sink: failed creating '%s' at %dHz (no sink built-in)\n", uri, samplerate);
 #endif
-  AUBIO_FREE(s);
+  del_aubio_sink(s);
   return NULL;
 }
 
   return NULL;
 }
 
@@ -135,8 +135,8 @@ uint_t aubio_sink_close(aubio_sink_t *s) {
 }
 
 void del_aubio_sink(aubio_sink_t * s) {
 }
 
 void del_aubio_sink(aubio_sink_t * s) {
-  if (!s) return;
-  s->s_del((void *)s->sink);
+  AUBIO_ASSERT(s);
+  if (s->s_del && s->sink)
+    s->s_del((void *)s->sink);
   AUBIO_FREE(s);
   AUBIO_FREE(s);
-  return;
 }
 }