-static int
-updatedCost (struct GNUNET_CONTAINER_Heap *root,
- struct GNUNET_CONTAINER_heap_node *node)
-{
- struct GNUNET_CONTAINER_heap_node *parent;
-
- if (node == NULL)
- return GNUNET_SYSERR;
-
- parent = node->parent;
-
- if ((root->type == GNUNET_CONTAINER_HEAP_ORDER_MAX) && (parent != NULL)
- && (node->cost > parent->cost))
- percolateHeap (node, root);
- else if ((root->type == GNUNET_CONTAINER_HEAP_ORDER_MIN) && (parent != NULL)
- && (node->cost < parent->cost))
- percolateHeap (node, root);
- else if (root->type == GNUNET_CONTAINER_HEAP_ORDER_MAX)
- percolateDownHeap (node, root);
- else if (root->type == GNUNET_CONTAINER_HEAP_ORDER_MIN)
- percolateDownHeap (node, root);
-
- return GNUNET_YES;
-}
-
-
-int
-GNUNET_CONTAINER_heap_update_cost (struct GNUNET_CONTAINER_Heap *root,
- void *element,
- GNUNET_CONTAINER_HeapCost new_cost)
-{
- struct GNUNET_CONTAINER_heap_node *node;
- int ret = GNUNET_YES;
- node = find_element (root->root, element);
- if (node == NULL)
- return GNUNET_NO;
-
- node->cost = new_cost;
- ret = updatedCost (root, node);
- return ret;
-}