Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c620f095 authored by Colin Cross's avatar Colin Cross Committed by Gerrit Code Review
Browse files

Merge "init: prevent action being added to the action_queue twice"

parents 6ef0dfec e9ab162f
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -571,6 +571,7 @@ void queue_builtin_action(int (*func)(int nargs, char **args), char *name)
    act = calloc(1, sizeof(*act));
    act->name = name;
    list_init(&act->commands);
    list_init(&act->qlist);

    cmd = calloc(1, sizeof(*cmd));
    cmd->func = func;
@@ -583,8 +584,10 @@ void queue_builtin_action(int (*func)(int nargs, char **args), char *name)

void action_add_queue_tail(struct action *act)
{
    if (list_empty(&act->qlist)) {
        list_add_tail(&action_queue, &act->qlist);
    }
}

struct action *action_remove_queue_head(void)
{
@@ -594,6 +597,7 @@ struct action *action_remove_queue_head(void)
        struct listnode *node = list_head(&action_queue);
        struct action *act = node_to_item(node, struct action, qlist);
        list_remove(node);
        list_init(node);
        return act;
    }
}
@@ -825,6 +829,7 @@ static void *parse_action(struct parse_state *state, int nargs, char **args)
    act = calloc(1, sizeof(*act));
    act->name = args[1];
    list_init(&act->commands);
    list_init(&act->qlist);
    list_add_tail(&action_list, &act->alist);
        /* XXX add to hash */
    return act;