]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - play.c
i9e: Fix memory leak in clear_bottom_line().
[paraslash.git] / play.c
diff --git a/play.c b/play.c
index 5794b9529a037cef913da03cdd86078cad96ea55..02128af0582aba2f724d70a459b427b096797a39 100644 (file)
--- a/play.c
+++ b/play.c
@@ -368,13 +368,7 @@ static int open_new_file(struct play_task *pt)
                tmp = NULL;
        }
        pt->rn.task.pre_select = afh_recv->pre_select;
-       if (afh_recv->new_post_select) {
-               pt->rn.task.new_post_select = afh_recv->new_post_select;
-               pt->rn.task.post_select = NULL;
-       } else {
-               pt->rn.task.post_select = NULL;
-               pt->rn.task.new_post_select = afh_recv->new_post_select;
-       }
+       pt->rn.task.post_select = afh_recv->post_select;
        sprintf(pt->rn.task.status, "%s receiver node", afh_recv->name);
        return 1;
 fail:
@@ -415,13 +409,7 @@ static int load_file(struct play_task *pt)
        pt->fn.filter_num = ret;
        decoder = filters + ret;
        pt->fn.task.pre_select = decoder->pre_select;
-       if (decoder->new_post_select) {
-               pt->fn.task.new_post_select = decoder->new_post_select;
-               pt->fn.task.post_select = NULL;
-       } else {
-               pt->fn.task.new_post_select = NULL;
-               pt->fn.task.post_select = decoder->post_select;
-       }
+       pt->fn.task.post_select = decoder->post_select;
        sprintf(pt->fn.task.status, "%s decoder", af);
        pt->fn.btrn = btr_new_node(&(struct btr_node_description)
                EMBRACE(.name = decoder->name, .parent = pt->rn.btrn,
@@ -1002,15 +990,7 @@ out:
 
 static int play_i9e_line_handler(char *line)
 {
-       struct play_task *pt = &play_task;
-       int ret;
-
-       if (line == NULL || !*line)
-               return 0;
-       ret = run_command(line, pt);
-       if (ret < 0)
-               return ret;
-       return 0;
+       return run_command(line, &play_task);
 }
 
 static int play_i9e_key_handler(int key)
@@ -1207,7 +1187,7 @@ static unsigned get_time_string(struct play_task *pt, char **result)
        );
 }
 
-static void play_post_select(struct sched *s, struct task *t)
+static int play_post_select(struct sched *s, struct task *t)
 {
        struct play_task *pt = container_of(t, struct play_task, task);
        int ret;
@@ -1215,7 +1195,7 @@ static void play_post_select(struct sched *s, struct task *t)
        ret = eof_cleanup(pt);
        if (ret < 0) {
                pt->rq = CRT_TERM_RQ;
-               return;
+               return 0;
        }
        ret = session_post_select(s, t);
        if (ret < 0)
@@ -1245,7 +1225,7 @@ static void play_post_select(struct sched *s, struct task *t)
        }
        ret = 1;
 out:
-       t->error = ret;
+       return ret;
 }
 
 /**