X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/24b8008bb424160e633b1374f54dcd89bdcb9749..509afa8dafbfc8a505586e5447a1ed4c76cf0ae3:/src/xbt/heap.c diff --git a/src/xbt/heap.c b/src/xbt/heap.c index e30291fa9a..e37675f260 100644 --- a/src/xbt/heap.c +++ b/src/xbt/heap.c @@ -1,19 +1,22 @@ +/* $Id$ */ + /* a generic and efficient heap */ -/* Authors: Arnaud Legrand */ +/* Copyright (c) 2004 Arnaud Legrand. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it - under the terms of the license (GNU LGPL) which comes with this package. */ + * under the terms of the license (GNU LGPL) which comes with this package. */ #include "xbt/sysdep.h" #include "xbt/error.h" #include "heap_private.h" -XBT_LOG_NEW_DEFAULT_SUBCATEGORY(heap,xbt,"Heap"); +XBT_LOG_NEW_DEFAULT_SUBCATEGORY(heap, xbt, "Heap"); /** * xbt_heap_new: * @init_size: initial size of the heap - * @free_func: function to call on each element when you want to free the whole heap (or NULL if nothing to do). + * @free_func: function to call on each element when you want to free + * the whole heap (or NULL if nothing to do). * * Creates a new heap. */ @@ -64,7 +67,7 @@ int xbt_heap_size(xbt_heap_t H) * Add an element int the heap. The element with the smallest key is * automatically moved at the top of the heap. */ -void xbt_heap_push(xbt_heap_t H, void *content, xbt_heap_float_t key) +void xbt_heap_push(xbt_heap_t H, void *content, double key) { int count = ++(H->count); int size = H->size; @@ -92,9 +95,10 @@ void xbt_heap_push(xbt_heap_t H, void *content, xbt_heap_float_t key) */ void *xbt_heap_pop(xbt_heap_t H) { - void *max ; + void *max; - if(H->count==0) return NULL; + if (H->count == 0) + return NULL; max = CONTENT(H, 0); @@ -116,9 +120,9 @@ void *xbt_heap_pop(xbt_heap_t H) * * Returns the smallest key in the heap without modifying the heap. */ -xbt_heap_float_t xbt_heap_maxkey(xbt_heap_t H) +double xbt_heap_maxkey(xbt_heap_t H) { - if(H->count==0) abort(); + xbt_assert0(H->count != 0,"Empty heap"); return KEY(H, 0); } @@ -131,7 +135,7 @@ xbt_heap_float_t xbt_heap_maxkey(xbt_heap_t H) */ void *xbt_heap_maxcontent(xbt_heap_t H) { - if(H->count==0) abort(); + xbt_assert0(H->count != 0,"Empty heap"); return CONTENT(H, 0); }