From d89310210610fd24633c959461b17907c48177a9 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Mon, 18 May 2015 10:24:51 -0400 Subject: [PATCH] Important change: ptrArrayAppend() is now implemented in terms of ptrArrayInsertBefore(). ptrArrayInsertBefore() can safely insert at the first invalid index; ValleyBell helped ensure this. tabAppend() will also be implemented this way; boxAppend() might be if uiBoxInsertBefore() becomes a thing. We can rename InsertBefore() to InsertAt() now too. --- redo/ptrarray.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/redo/ptrarray.c b/redo/ptrarray.c index 6a7b36b3..b8abc8dd 100644 --- a/redo/ptrarray.c +++ b/redo/ptrarray.c @@ -21,17 +21,12 @@ void ptrArrayDestroy(struct ptrArray *p) void ptrArrayAppend(struct ptrArray *p, void *d) { - if (p->len >= p->cap) { - p->cap += grow; - p->ptrs = (void **) uiRealloc(p->ptrs, p->cap * sizeof (void *), "void *[]"); - } - p->ptrs[p->len] = d; - p->len++; + ptrArrayInsertBefore(p, p->len, d); } void ptrArrayInsertBefore(struct ptrArray *p, uintmax_t i, void *d) { - if (i >= p->len) + if (i > p->len) complain("index out of range in ptrArrayInsertBefore()"); if (p->len >= p->cap) { p->cap += grow;