Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Change xbt_heap_rm_elm to return the removed element, or NULL.
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Tue, 26 Sep 2017 13:14:56 +0000 (15:14 +0200)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Tue, 26 Sep 2017 15:30:43 +0000 (17:30 +0200)
include/xbt/heap.h
src/xbt/heap.c

index 7e4ea84..27c2a81 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2004-2007, 2009-2011, 2013-2015. The SimGrid Team.
+/* Copyright (c) 2004-2007, 2009-2011, 2013-2017. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -29,7 +29,7 @@ XBT_PUBLIC(int) xbt_heap_size(xbt_heap_t H);
 
 XBT_PUBLIC(void) xbt_heap_push(xbt_heap_t H, void *content, double key);
 XBT_PUBLIC(void *) xbt_heap_pop(xbt_heap_t H);
-XBT_PUBLIC(void) xbt_heap_rm_elm(xbt_heap_t H, void *content, double key);
+XBT_PUBLIC(void *) xbt_heap_rm_elm(xbt_heap_t H, void *content, double key);
 
 XBT_PUBLIC(double) xbt_heap_maxkey(xbt_heap_t H);
 XBT_PUBLIC(void *) xbt_heap_maxcontent(xbt_heap_t H);
index 5bd06f3..2d4964a 100644 (file)
@@ -158,18 +158,19 @@ void *xbt_heap_remove(xbt_heap_t H, int i)
 
   return xbt_heap_pop(H);
 }
+
 /** @brief Remove an arbitrary element from the heap
- *  @param H the heap we're working on
- *  @param content the object you want to add to the heap
- *  @param key the key associated to this object
+ *  \param H the heap we're working on
+ *  \param content the object you want to remove from the heap
+ *  \param key the key associated to this object
+ *  \return the removed element if found, NULL otherwise
  */
-void xbt_heap_rm_elm(xbt_heap_t H, void *content, double key) {
+void *xbt_heap_rm_elm(xbt_heap_t H, void *content, double key)
+{
   int i=0;
   while (i < H->count && (KEY(H, i) != key || CONTENT(H, i) != content))
     i++;
-  if (i == H->count)
-    return;
-  xbt_heap_remove(H,i);
+  return xbt_heap_remove(H, i);
 }
 
 /**