]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - audiod.c
fecdec: Kill some dead code.
[paraslash.git] / audiod.c
index d12b65e5a49193346adc798be3b28293e16bb99c..128f7b424828c4c1b5966912d32a931427accc51 100644 (file)
--- a/audiod.c
+++ b/audiod.c
@@ -368,7 +368,7 @@ static void close_writers(struct slot_info *s)
        s->wns = NULL;
 }
 
-static void _close_filters(struct slot_info *s)
+static void close_filters(struct slot_info *s)
 {
        int i;
        struct audio_format_info *a = afi + s->format;
@@ -381,7 +381,8 @@ static void _close_filters(struct slot_info *s)
                if (!fn)
                        continue;
                f = filters + fn->filter_num;
-               f->close(fn);
+               if (f->close)
+                       f->close(fn);
                btr_free_node(fn->btrn);
        }
        free(s->fns);
@@ -1061,12 +1062,17 @@ static bool try_to_close_slot(int slot_num)
        for (i = 0; i < a->num_filters; i++)
                if (s->fns && s->fns[i].task.error != -E_TASK_UNREGISTERED)
                        return false;
-       for (i = 0; i < a->num_writers; i++)
-               if (s->wns && s->wns[i].task.error != -E_TASK_UNREGISTERED)
+       if (a->num_writers > 0) {
+               for (i = 0; i < a->num_writers; i++)
+                       if (s->wns && s->wns[i].task.error != -E_TASK_UNREGISTERED)
+                               return false;
+       } else {
+               if (s->wns && s->wns[0].task.error != -E_TASK_UNREGISTERED)
                        return false;
+       }
        PARA_INFO_LOG("closing slot %d\n", slot_num);
        close_writers(s);
-       _close_filters(s);
+       close_filters(s);
        close_receiver(slot_num);
        clear_slot(slot_num);
        return true;