simplify GNUNET_CONTAINER_heap_update_cost API
authorChristian Grothoff <christian@grothoff.org>
Mon, 16 Jan 2017 10:24:30 +0000 (11:24 +0100)
committerChristian Grothoff <christian@grothoff.org>
Mon, 16 Jan 2017 10:24:30 +0000 (11:24 +0100)
src/datacache/plugin_datacache_heap.c
src/datastore/plugin_datastore_heap.c
src/exit/gnunet-daemon-exit.c
src/include/gnunet_container_lib.h
src/transport/plugin_transport_udp.c
src/util/container_heap.c
src/util/test_container_heap.c
src/vpn/gnunet-service-vpn.c

index 185d54f2f81d18d02630e6bae8c1dab8607ea177..49e60bca1dc04347d1e842e99504a5d44379eabb 100644 (file)
@@ -180,8 +180,7 @@ put_cb (void *cls,
     GNUNET_memcpy (val->path_info,
            put_ctx->path_info,
            put_ctx->path_info_len * sizeof (struct GNUNET_PeerIdentity));
-    GNUNET_CONTAINER_heap_update_cost (put_ctx->heap,
-                                      val->hn,
+    GNUNET_CONTAINER_heap_update_cost (val->hn,
                                       val->discard_time.abs_value_us);
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                "Got same value for key %s and type %d (size %u vs %u)\n",
index 51f61764c6c71df5cbdbf5b6efcab8deaffe7c87..977d599d20ba3e111388f9e10cddce82e3e7d116 100644 (file)
@@ -331,7 +331,7 @@ struct GetContext
    * The plugin.
    */
   struct Plugin *plugin;
-               
+
   /**
    * Requested value hash.
    */
@@ -608,7 +608,7 @@ heap_plugin_get_expiration (void *cls, PluginDatumProcessor proc,
  * priority should be added to the existing priority, ignoring the
  * priority in value.
  *
- * @param cls our "struct Plugin*"
+ * @param cls our `struct Plugin *`
  * @param uid unique identifier of the datum
  * @param delta by how much should the priority
  *     change?  If priority + delta < 0 the
@@ -628,7 +628,6 @@ heap_plugin_update (void *cls,
                    PluginUpdateCont cont,
                    void *cont_cls)
 {
-  struct Plugin *plugin = cls;
   struct Value *value;
 
   value = (struct Value*) (long) uid;
@@ -636,8 +635,7 @@ heap_plugin_update (void *cls,
   if (value->expiration.abs_value_us != expire.abs_value_us)
   {
     value->expiration = expire;
-    GNUNET_CONTAINER_heap_update_cost (plugin->by_expiration,
-                                      value->expire_heap,
+    GNUNET_CONTAINER_heap_update_cost (value->expire_heap,
                                       expire.abs_value_us);
   }
   if ( (delta < 0) && (value->priority < - delta) )
index 790780aa64d5e756235276b72288469aad489220..92acc61cdd09f1f9ebf9e47802bc88e89f09e1eb 100644 (file)
@@ -747,9 +747,8 @@ get_redirect_state (int af,
     return NULL;
   /* Mark this connection as freshly used */
   if (NULL == state_key)
-    GNUNET_CONTAINER_heap_update_cost (connections_heap,
-                                      state->specifics.tcp_udp.heap_node,
-                                      GNUNET_TIME_absolute_get ().abs_value_us);
+    GNUNET_CONTAINER_heap_update_cost (state->specifics.tcp_udp.heap_node,
+                                       GNUNET_TIME_absolute_get ().abs_value_us);
   return state;
 }
 
index 03c47c2019b701d24858411c7ce4748759e8e7b0..075c0822aad2081a4bac95b08deb9ab7eb8001ba 100644 (file)
@@ -1915,8 +1915,8 @@ GNUNET_CONTAINER_heap_get_size (const struct GNUNET_CONTAINER_Heap *heap);
  * @return cost of the node
  */
 GNUNET_CONTAINER_HeapCostType
-GNUNET_CONTAINER_heap_node_get_cost (const struct GNUNET_CONTAINER_HeapNode
-                                     *node);
+GNUNET_CONTAINER_heap_node_get_cost (const struct GNUNET_CONTAINER_HeapNode *node);
+
 
 /**
  * @ingroup heap
@@ -2006,13 +2006,11 @@ GNUNET_CONTAINER_heap_remove_node (struct GNUNET_CONTAINER_HeapNode *node);
  * @ingroup heap
  * Updates the cost of any node in the tree
  *
- * @param heap heap to modify
  * @param node node for which the cost is to be changed
  * @param new_cost new cost for the node
  */
 void
-GNUNET_CONTAINER_heap_update_cost (struct GNUNET_CONTAINER_Heap *heap,
-                                   struct GNUNET_CONTAINER_HeapNode *node,
+GNUNET_CONTAINER_heap_update_cost (struct GNUNET_CONTAINER_HeapNode *node,
                                    GNUNET_CONTAINER_HeapCostType new_cost);
 
 
index 8281e48c52fb0144c17ac4f25526af829ea4a26b..fd8493e5f5b7b1dedd34ff94f31571462852ef99 100644 (file)
@@ -1246,7 +1246,7 @@ udp_plugin_check_address (void *cls,
   if (sizeof(struct IPv4UdpAddress) == addrlen)
   {
     struct sockaddr_in s4;
-    
+
     v4 = (const struct IPv4UdpAddress *) addr;
     if (GNUNET_OK != check_port (plugin,
                                  ntohs (v4->u4_port)))
@@ -1258,7 +1258,7 @@ udp_plugin_check_address (void *cls,
 #endif
     s4.sin_port = v4->u4_port;
     s4.sin_addr.s_addr = v4->ipv4_addr;
-    
+
     if (GNUNET_OK !=
        GNUNET_NAT_test_address (plugin->nat,
                                 &s4,
@@ -3052,8 +3052,7 @@ read_process_fragment (struct Plugin *plugin,
                                           msg))
   {
     /* keep this 'rc' from expiring */
-    GNUNET_CONTAINER_heap_update_cost (plugin->defrag_ctxs,
-                                       d_ctx->hnode,
+    GNUNET_CONTAINER_heap_update_cost (d_ctx->hnode,
                                        (GNUNET_CONTAINER_HeapCostType) now.abs_value_us);
   }
   if (GNUNET_CONTAINER_heap_get_size (plugin->defrag_ctxs) >
@@ -3539,7 +3538,7 @@ udp_plugin_select_v4 (void *cls)
 {
   struct Plugin *plugin = cls;
   const struct GNUNET_SCHEDULER_TaskContext *tc;
-  
+
   plugin->select_task_v4 = NULL;
   if (NULL == plugin->sockv4)
     return;
index 4f82fb076cb3704aa1e8b4bf69378b2969368e9d..1ead5ec6d79879bfcd585352210373628c496433 100644 (file)
@@ -541,36 +541,23 @@ GNUNET_CONTAINER_heap_remove_node (struct GNUNET_CONTAINER_HeapNode *node)
 /**
  * Updates the cost of any node in the tree
  *
- * @param heap heap to modify
  * @param node node for which the cost is to be changed
  * @param new_cost new cost for the node
  */
 void
-GNUNET_CONTAINER_heap_update_cost (struct GNUNET_CONTAINER_Heap *heap,
-                                   struct GNUNET_CONTAINER_HeapNode *node,
+GNUNET_CONTAINER_heap_update_cost (struct GNUNET_CONTAINER_HeapNode *node,
                                    GNUNET_CONTAINER_HeapCostType new_cost)
 {
-#if EXTRA_CHECKS
-  GNUNET_assert (((heap->size == 0) && (heap->root == NULL)) ||
-                 (heap->size == heap->root->tree_size + 1));
-  CHECK (heap->root);
-#endif
+  struct GNUNET_CONTAINER_Heap *heap = node->heap;
+
   remove_node (node);
-#if EXTRA_CHECKS
-  CHECK (heap->root);
-  GNUNET_assert (((heap->size == 1) && (heap->root == NULL)) ||
-                 (heap->size == heap->root->tree_size + 2));
-#endif
   node->cost = new_cost;
-  if (heap->root == NULL)
+  if (NULL == heap->root)
     heap->root = node;
   else
-    insert_node (heap, heap->root, node);
-#if EXTRA_CHECKS
-  CHECK (heap->root);
-  GNUNET_assert (((heap->size == 0) && (heap->root == NULL)) ||
-                 (heap->size == heap->root->tree_size + 1));
-#endif
+    insert_node (heap,
+                 heap->root,
+                 node);
 }
 
 
index f115159bf8561eb8ba410c184d3e22a29b2aa726..82b0e9523809077269b912eebfc65e80dad149b5 100644 (file)
@@ -28,7 +28,8 @@
 #include "gnunet_util_lib.h"
 
 static int
-iterator_callback (void *cls, struct GNUNET_CONTAINER_HeapNode *node,
+iterator_callback (void *cls,
+                   struct GNUNET_CONTAINER_HeapNode *node,
                    void *element, GNUNET_CONTAINER_HeapCostType cost)
 {
   return GNUNET_OK;
@@ -93,12 +94,12 @@ check ()
   GNUNET_CONTAINER_heap_iterate (myHeap, &iterator_callback, NULL);
 
   n3 = GNUNET_CONTAINER_heap_insert (myHeap, "15", 5);
-  GNUNET_CONTAINER_heap_update_cost (myHeap, n3, 15);
+  GNUNET_CONTAINER_heap_update_cost (n3, 15);
   GNUNET_assert (2 == GNUNET_CONTAINER_heap_get_size (myHeap));
   GNUNET_CONTAINER_heap_iterate (myHeap, &iterator_callback, NULL);
 
   n4 = GNUNET_CONTAINER_heap_insert (myHeap, "50", 50);
-  GNUNET_CONTAINER_heap_update_cost (myHeap, n4, 50);
+  GNUNET_CONTAINER_heap_update_cost (n4, 50);
   GNUNET_assert (3 == GNUNET_CONTAINER_heap_get_size (myHeap));
   GNUNET_CONTAINER_heap_iterate (myHeap, &iterator_callback, NULL);
 
@@ -109,7 +110,7 @@ check ()
   r = GNUNET_CONTAINER_heap_remove_root (myHeap);       /* n1 */
   GNUNET_assert (NULL != r);
   GNUNET_assert (0 == strcmp ("11", r));
-  GNUNET_CONTAINER_heap_update_cost (myHeap, n6, 200);
+  GNUNET_CONTAINER_heap_update_cost (n6, 200);
   GNUNET_CONTAINER_heap_remove_node (n3);
   r = GNUNET_CONTAINER_heap_remove_root (myHeap);       /* n4 */
   GNUNET_assert (NULL != r);
@@ -128,7 +129,7 @@ check ()
   myHeap = GNUNET_CONTAINER_heap_create (GNUNET_CONTAINER_HEAP_ORDER_MIN);
 
   n1 = GNUNET_CONTAINER_heap_insert (myHeap, "10", 10);
-  GNUNET_CONTAINER_heap_update_cost (myHeap, n1, 15);
+  GNUNET_CONTAINER_heap_update_cost (n1, 15);
 
   r = GNUNET_CONTAINER_heap_remove_node (n1);
   GNUNET_assert (NULL != r);
@@ -213,7 +214,7 @@ check ()
   myHeap = GNUNET_CONTAINER_heap_create (GNUNET_CONTAINER_HEAP_ORDER_MAX);
 
   n1 = GNUNET_CONTAINER_heap_insert (myHeap, "10", 10);
-  GNUNET_CONTAINER_heap_update_cost (myHeap, n1, 15);
+  GNUNET_CONTAINER_heap_update_cost (n1, 15);
 
   GNUNET_assert (0 == nstrcmp ("10", GNUNET_CONTAINER_heap_remove_node (n1)));
 
index 4c0978d5c93838fa6f0015078ddc142926eaaa3e..c66023c8572098b3c352f58b98e1335e56353831 100644 (file)
@@ -1129,8 +1129,7 @@ route_packet (struct DestinationEntry *destination,
   }
   else
   {
-    GNUNET_CONTAINER_heap_update_cost (channel_heap,
-                                      ts->heap_node,
+    GNUNET_CONTAINER_heap_update_cost (ts->heap_node,
                                       GNUNET_TIME_absolute_get ().abs_value_us);
   }
   if (NULL == ts->channel)
@@ -2062,8 +2061,7 @@ receive_icmp_back (void *cls,
   default:
     GNUNET_assert (0);
   }
-  GNUNET_CONTAINER_heap_update_cost (channel_heap,
-                                    ts->heap_node,
+  GNUNET_CONTAINER_heap_update_cost (ts->heap_node,
                                     GNUNET_TIME_absolute_get ().abs_value_us);
   GNUNET_CADET_receive_done (channel);
   return GNUNET_OK;
@@ -2218,8 +2216,7 @@ receive_udp_back (void *cls,
   default:
     GNUNET_assert (0);
   }
-  GNUNET_CONTAINER_heap_update_cost (channel_heap,
-                                    ts->heap_node,
+  GNUNET_CONTAINER_heap_update_cost (ts->heap_node,
                                     GNUNET_TIME_absolute_get ().abs_value_us);
   GNUNET_CADET_receive_done (channel);
   return GNUNET_OK;
@@ -2361,8 +2358,7 @@ receive_tcp_back (void *cls,
     }
     break;
   }
-  GNUNET_CONTAINER_heap_update_cost (channel_heap,
-                                    ts->heap_node,
+  GNUNET_CONTAINER_heap_update_cost (ts->heap_node,
                                     GNUNET_TIME_absolute_get ().abs_value_us);
   GNUNET_CADET_receive_done (channel);
   return GNUNET_OK;