X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/8e3fe3d8ea9f5e75b6f1be4e4ae8cf2c16db88e3..1f868ca317a161c7b754dc2d80b3be49eddafb23:/lib/heap.h diff --git a/lib/heap.h b/lib/heap.h index ebd2f60..c6504ef 100644 --- a/lib/heap.h +++ b/lib/heap.h @@ -1,6 +1,6 @@ /* * This file is part of DisOrder. - * Copyright (C) 2007 Richard Kettlewell + * Copyright (C) 2007, 2008 Richard Kettlewell * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,6 +22,8 @@ #ifndef HEAP_H #define HEAP_H +#include "vector.h" + /** @brief Binary heap template. * @param NAME name of type to define * @param ETYPE element type @@ -85,7 +87,7 @@ } \ \ static inline NAME##_element NAME##_first(struct NAME *heap) { \ - assert(heap->nvec > 0); \ + assert(heap->nvec > 0 && "_first"); \ return heap->vec[0]; \ } \ \ @@ -116,7 +118,7 @@ int n = 0; \ NAME##_element r; \ \ - assert(heap->nvec > 0); \ + assert(heap->nvec > 0 && "_remove"); \ r = heap->vec[0]; \ heap->vec[0] = heap->vec[--heap->nvec]; \ while(2 * n + 1 < heap->nvec) { \