X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/library/blobdiff_plain/749cebc3eb8ed48144cff437995bd1735126c9cc..5a2294f3414bb776a92c82320b89cdc79a81dc21:/bheap.c diff --git a/bheap.c b/bheap.c index cf9bb5c..fe32b94 100644 --- a/bheap.c +++ b/bheap.c @@ -94,7 +94,7 @@ bheap *bheap_new(int maxelts, int eltsize, int direction, * Allocate one extra element of space, to use for swapping * things. */ - bh->elts = malloc(maxelts * (eltsize+1)); + bh->elts = malloc((maxelts + 1) * eltsize); if (!bh->elts) return NULL; @@ -364,6 +364,15 @@ int main(void) { coverage = checked_coverage = 0; + /* Regression test - this used to report access violations when run under + * valgrind. */ + bh = bheap_new(2, sizeof(int), +1, intcmp, &intcmp_ctx); + add(2); + add(1); + rem(1); + rem(2); + bheap_free(bh); + bh = bheap_new(MAX, sizeof(int), +1, intcmp, &intcmp_ctx); /*