Fixing likely and sort test.
author <brian@gir.tangent.org> <>
Fri, 4 Apr 2008 06:58:50 +0000 (23:58 -0700)
committer <brian@gir.tangent.org> <>
Fri, 4 Apr 2008 06:58:50 +0000 (23:58 -0700)
ChangeLog
libmemcached/common.h
tests/function.c

index 9eadd965e6f394a78282b3cce9484bf1ecb7484f..3d363ffa1a4086786c6285d0d07111214dc41d98 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,5 @@
 0.19
+  * Logic fix in branch prediction (thanks Jay!)
   * Read through cached support.
   * Fixed for cas by key operation.
   * Fix for memcached_server_st list structures to have correct count.
index 288f421d4280b83072827f59041cab5c39cff574..7e21afff48a740f1152b6cfff48e0baaf2358097 100644 (file)
 #include <libmemcached_config.h>
 
 #if !defined(__GNUC__) || (__GNUC__ == 2 && __GNUC_MINOR__ < 96)
-#define __builtin_expect(x, expected_value) (x)
-
-#define likely(x)       __builtin_expect((x),1)
-#define unlikely(x)     __builtin_expect((x),0)
-
-#else
 
 #define likely(x)       if((x))
 #define unlikely(x)     if((x))
 
+#else
+
+#define likely(x)       if(__builtin_expect(!!(x), 1))
+#define unlikely(x)     if(__builtin_expect((x), 0))
 #endif
 
+
 #ifdef HAVE_DTRACE
 #define _DTRACE_VERSION 1
 #else
index 38de6679daf5e56f2df810c41db23b6a433326ee..a306a4a44ed187c284db1bd32ecf5f9e985c384f 100644 (file)
@@ -65,8 +65,9 @@ uint32_t test_ports[TEST_PORT_COUNT];
 memcached_return server_display_function(memcached_st *ptr, memcached_server_st *server, void *context)
 {
   /* Do Nothing */
-  uint32_t *bigger= (uint32_t *)context;
-  assert(*bigger <= server->port);
+  uint32_t bigger= *((uint32_t *)(context));
+  assert(bigger <= server->port);
+  *((uint32_t *)(context))= bigger;
 
   return MEMCACHED_SUCCESS;
 }