X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fshared%2Fprioq.c;h=8af4c51c2f751336e2822a44a1c12e2257960761;hp=64c44aef8266bfef9bab49ea12cb397f6cb777f7;hb=099524d7b0df690e3361ffc3fe3c6aed0558b4fc;hpb=a3de5ae1d7d881bbd4869c6c4a200c84bda00ced diff --git a/src/shared/prioq.c b/src/shared/prioq.c index 64c44aef8..8af4c51c2 100644 --- a/src/shared/prioq.c +++ b/src/shared/prioq.c @@ -159,7 +159,7 @@ int prioq_put(Prioq *q, void *data, unsigned *idx) { unsigned n; struct prioq_item *j; - n = MAX((q->n_items+1) * 2, 16); + n = MAX((q->n_items+1) * 2, 16u); j = realloc(q->items, sizeof(struct prioq_item) * n); if (!j) return -ENOMEM; @@ -211,13 +211,14 @@ static void remove_item(Prioq *q, struct prioq_item *i) { } } -static struct prioq_item* find_item(Prioq *q, void *data, unsigned *idx) { +_pure_ static struct prioq_item* find_item(Prioq *q, void *data, unsigned *idx) { struct prioq_item *i; assert(q); if (idx) { - if (*idx > q->n_items) + if (*idx == PRIOQ_IDX_NULL || + *idx > q->n_items) return NULL; i = q->items + *idx; @@ -294,8 +295,8 @@ unsigned prioq_size(Prioq *q) { return 0; return q->n_items; - } + bool prioq_isempty(Prioq *q) { if (!q)