Merge branch 'obsd-master'

This commit is contained in:
Thomas Adam 2016-10-14 22:01:11 +01:00
commit 9d58febc8f
3 changed files with 17 additions and 6 deletions

5
cfg.c
View File

@ -128,7 +128,10 @@ load_cfg(const char *path, struct cmd_q *cmdq, int quiet)
static void static void
cfg_default_done(__unused struct cmd_q *cmdq) cfg_default_done(__unused struct cmd_q *cmdq)
{ {
if (--cfg_references != 0) log_debug("%s: %u references%s", __func__, cfg_references,
cfg_finished ? " (finished)" : "");
if (cfg_finished || --cfg_references != 0)
return; return;
cfg_finished = 1; cfg_finished = 1;

View File

@ -55,6 +55,8 @@ cmdq_new(struct client *c)
int int
cmdq_free(struct cmd_q *cmdq) cmdq_free(struct cmd_q *cmdq)
{ {
log_debug("cmdq %p free: %u references", cmdq, cmdq->references);
if (--cmdq->references != 0) { if (--cmdq->references != 0) {
if (cmdq->flags & CMD_Q_DEAD) if (cmdq->flags & CMD_Q_DEAD)
return (1); return (1);
@ -186,6 +188,7 @@ cmdq_append(struct cmd_q *cmdq, struct cmd_list *cmdlist, struct mouse_event *m)
static enum cmd_retval static enum cmd_retval
cmdq_continue_one(struct cmd_q *cmdq) cmdq_continue_one(struct cmd_q *cmdq)
{ {
struct cmd_list *cmdlist = cmdq->item->cmdlist;
struct cmd *cmd = cmdq->cmd; struct cmd *cmd = cmdq->cmd;
enum cmd_retval retval; enum cmd_retval retval;
char *tmp; char *tmp;
@ -193,6 +196,8 @@ cmdq_continue_one(struct cmd_q *cmdq)
const char *name; const char *name;
struct cmd_find_state *fsp, fs; struct cmd_find_state *fsp, fs;
cmdlist->references++;
tmp = cmd_print(cmd); tmp = cmd_print(cmd);
log_debug("cmdq %p: %s", cmdq, tmp); log_debug("cmdq %p: %s", cmdq, tmp);
free(tmp); free(tmp);
@ -225,10 +230,12 @@ cmdq_continue_one(struct cmd_q *cmdq)
end: end:
cmdq_guard(cmdq, "end", flags); cmdq_guard(cmdq, "end", flags);
cmd_list_free(cmdlist);
return (retval); return (retval);
error: error:
cmdq_guard(cmdq, "error", flags); cmdq_guard(cmdq, "error", flags);
cmd_list_free(cmdlist);
return (CMD_RETURN_ERROR); return (CMD_RETURN_ERROR);
} }
@ -244,8 +251,7 @@ cmdq_continue(struct cmd_q *cmdq)
cmdq->references++; cmdq->references++;
notify_disable(); notify_disable();
log_debug("continuing cmdq %p: flags %#x, client %p", cmdq, cmdq->flags, log_debug("continuing cmdq %p: flags %#x (%p)", cmdq, cmdq->flags, c);
c);
empty = TAILQ_EMPTY(&cmdq->queue); empty = TAILQ_EMPTY(&cmdq->queue);
if (empty) if (empty)
@ -282,6 +288,7 @@ cmdq_continue(struct cmd_q *cmdq)
} while (cmdq->item != NULL); } while (cmdq->item != NULL);
empty: empty:
log_debug("cmdq %p empty", cmdq);
if (cmdq->client_exit > 0) if (cmdq->client_exit > 0)
cmdq->client->flags |= CLIENT_EXIT; cmdq->client->flags |= CLIENT_EXIT;
if (cmdq->emptyfn != NULL) if (cmdq->emptyfn != NULL)

View File

@ -68,6 +68,8 @@ cmd_source_file_exec(struct cmd *self, struct cmd_q *cmdq)
return (CMD_RETURN_NORMAL); return (CMD_RETURN_NORMAL);
} }
log_debug("%s: cmdq %p, parent %p", __func__, cmdq1, cmdq);
cmdq->references++; cmdq->references++;
cfg_references++; cfg_references++;
@ -80,16 +82,15 @@ cmd_source_file_done(struct cmd_q *cmdq1)
{ {
struct cmd_q *cmdq = cmdq1->data; struct cmd_q *cmdq = cmdq1->data;
log_debug("%s: cmdq %p, parent %p", __func__, cmdq1, cmdq);
if (cmdq1->client_exit >= 0) if (cmdq1->client_exit >= 0)
cmdq->client_exit = cmdq1->client_exit; cmdq->client_exit = cmdq1->client_exit;
cmdq_free(cmdq1); cmdq_free(cmdq1);
cfg_references--; cfg_references--;
if (cmdq_free(cmdq)) if (cmdq_free(cmdq))
return; return;
if (cfg_references == 0) if (cfg_references == 0)
cfg_print_causes(cmdq); cfg_print_causes(cmdq);
cmdq_continue(cmdq); cmdq_continue(cmdq);