replace expensive function call with macro for trivial calculation
authorChristian Grothoff <christian@grothoff.org>
Wed, 25 Dec 2019 15:14:57 +0000 (16:14 +0100)
committerChristian Grothoff <christian@grothoff.org>
Wed, 25 Dec 2019 15:14:57 +0000 (16:14 +0100)
src/include/gnunet_common.h
src/transport/transport_api2_communication.c
src/util/common_endian.c

index 3ac186e0bb28d68fba7f0b233612e8307277807c..36f9eee4a0e3a4412341b4ceedc1dd52d85b808d 100644 (file)
@@ -997,6 +997,11 @@ GNUNET_error_type_to_string (enum GNUNET_ErrorType kind);
 
 /* ************************* endianess conversion ****************** */
 
+#ifdef htonbe64
+
+#define GNUNET_htonll(n) htobe64 (n)
+
+#else
 /**
  * Convert unsigned 64-bit integer to network byte order.
  *
@@ -1008,7 +1013,14 @@ GNUNET_error_type_to_string (enum GNUNET_ErrorType kind);
 uint64_t
 GNUNET_htonll (uint64_t n);
 
+#endif
+
 
+#ifdef be64toh
+
+#define GNUNET_ntohll(n) be64toh (n)
+
+#else
 /**
  * Convert unsigned 64-bit integer to host byte order.
  *
@@ -1020,6 +1032,8 @@ GNUNET_htonll (uint64_t n);
 uint64_t
 GNUNET_ntohll (uint64_t n);
 
+#endif
+
 
 /**
  * Convert double to network byte order.
index de5b42c3fdfc6c2a3856bb0086a2bb27580b5f7f..9df9424daa3d39fbc4ca7f161dd0b66e0f3c2dfc 100644 (file)
@@ -872,7 +872,7 @@ GNUNET_TRANSPORT_communicator_receive (
   {
     GNUNET_log (
       GNUNET_ERROR_TYPE_WARNING,
-      "Dropping message: transprot is too slow, queue length %llu exceeded\n",
+      "Dropping message: transport is too slow, queue length %llu exceeded\n",
       ch->max_queue_length);
     return GNUNET_NO;
   }
@@ -888,6 +888,10 @@ GNUNET_TRANSPORT_communicator_receive (
   im->expected_address_validity =
     GNUNET_TIME_relative_hton (expected_addr_validity);
   im->sender = *sender;
+  // FIXME: this is expensive, would be better if we would
+  // re-design the API to allow us to create the envelope first,
+  // and then have the application fill in the body so we do
+  // not have to memcpy()
   memcpy (&im[1], msg, msize);
   if (NULL != cb)
   {
index fa7d99d854c1b23e3080e40969ed3173766fc9a1..d69cc1da51ae769af22a5ee7da9c62dffef21173 100644 (file)
@@ -31,6 +31,7 @@
 #define LOG(kind, ...) GNUNET_log_from (kind, "util-common-endian", __VA_ARGS__)
 
 
+#ifndef htonbe64
 uint64_t
 GNUNET_htonll (uint64_t n)
 {
@@ -44,6 +45,10 @@ GNUNET_htonll (uint64_t n)
 }
 
 
+#endif
+
+
+#ifndef be64toh
 uint64_t
 GNUNET_ntohll (uint64_t n)
 {
@@ -57,6 +62,9 @@ GNUNET_ntohll (uint64_t n)
 }
 
 
+#endif
+
+
 /**
  * Convert double to network-byte-order.
  * @param d the value in network byte order