Add q_last_type() queue function

Analogous to q_cur_type(), asserts that queue indices are within a valid
range.
This commit is contained in:
Justin Viiret
2015-10-30 09:43:28 +11:00
committed by Matthew Barr
parent a6383a54a4
commit cea914e18e
4 changed files with 12 additions and 4 deletions

View File

@@ -379,7 +379,7 @@ void ensureEnd(struct mq *q, UNUSED u32 qi, s64a final_loc) {
DEBUG_PRINTF("ensure MQE_END %lld for queue %u\n", final_loc, qi);
if (final_loc >= q_last_loc(q)) {
/* TODO: ensure situation does not arise */
assert(q->items[q->end - 1].type != MQE_END);
assert(q_last_type(q) != MQE_END);
pushQueueNoMerge(q, MQE_END, final_loc);
}
}

View File

@@ -758,7 +758,7 @@ found_miracle:
q_skip_forward_to(q, miracle_loc);
if (q->items[q->end - 1].type == MQE_START) {
if (q_last_type(q) == MQE_START) {
DEBUG_PRINTF("miracle caused infix to die\n");
return 0;
}
@@ -853,7 +853,7 @@ char roseTestLeftfix(const struct RoseEngine *t, const struct RoseRole *tr,
}
}
if (q_cur_loc(q) < loc || q->items[q->end - 1].type != MQE_START) {
if (q_cur_loc(q) < loc || q_last_type(q) != MQE_START) {
if (left->infix) {
if (infixTooOld(q, loc)) {
DEBUG_PRINTF("infix %u died of old age\n", ri);

View File

@@ -167,7 +167,7 @@ found_miracle:
DEBUG_PRINTF("skip q forward, %lld to %lld\n", begin_loc, miracle_loc);
q_skip_forward_to(q, miracle_loc);
if (q->items[q->end - 1].type == MQE_START) {
if (q_last_type(q) == MQE_START) {
DEBUG_PRINTF("miracle caused infix to die\n");
return MIRACLE_DEAD;
}