41 lines
2.0 KiB
Diff
41 lines
2.0 KiB
Diff
diff -rdBu memcached-1.4.0-rc1/memcached.h memcached-1.4.0-my/memcached.h
|
|
--- memcached-1.4.0-rc1/memcached.h 2009-05-29 00:51:56.000000000 +0400
|
|
+++ memcached-1.4.0-my/memcached.h 2009-06-07 22:32:52.000000000 +0400
|
|
@@ -75,21 +75,21 @@
|
|
|
|
/* warning: don't use these macros with a function, as it evals its arg twice */
|
|
#define ITEM_get_cas(i) ((uint64_t)(((i)->it_flags & ITEM_CAS) ? \
|
|
- *(uint64_t*)&((i)->end[0]) : 0x0))
|
|
+ *(uint64_t*)((char*)(i) + sizeof(*i)) : 0x0))
|
|
#define ITEM_set_cas(i,v) { if ((i)->it_flags & ITEM_CAS) { \
|
|
- *(uint64_t*)&((i)->end[0]) = v; } }
|
|
+ *(uint64_t*)((char*)(i) + sizeof(*i)) = v; } }
|
|
|
|
-#define ITEM_key(item) (((char*)&((item)->end[0])) \
|
|
+#define ITEM_key(item) ((char*)(item) + sizeof(*item) \
|
|
+ (((item)->it_flags & ITEM_CAS) ? sizeof(uint64_t) : 0))
|
|
|
|
-#define ITEM_suffix(item) ((char*) &((item)->end[0]) + (item)->nkey + 1 \
|
|
+#define ITEM_suffix(item) ((char*)(item) + sizeof(*item) + (item)->nkey + 1 \
|
|
+ (((item)->it_flags & ITEM_CAS) ? sizeof(uint64_t) : 0))
|
|
|
|
-#define ITEM_data(item) ((char*) &((item)->end[0]) + (item)->nkey + 1 \
|
|
+#define ITEM_data(item) ((char*)(item) + sizeof(*item) + (item)->nkey + 1 \
|
|
+ (item)->nsuffix \
|
|
+ (((item)->it_flags & ITEM_CAS) ? sizeof(uint64_t) : 0))
|
|
|
|
-#define ITEM_ntotal(item) (sizeof(struct _stritem) + (item)->nkey + 1 \
|
|
+#define ITEM_ntotal(item) (sizeof(*item) + (item)->nkey + 1 \
|
|
+ (item)->nsuffix + (item)->nbytes \
|
|
+ (((item)->it_flags & ITEM_CAS) ? sizeof(uint64_t) : 0))
|
|
|
|
@@ -285,7 +285,6 @@
|
|
uint8_t it_flags; /* ITEM_* above */
|
|
uint8_t slabs_clsid;/* which slab class we're in */
|
|
uint8_t nkey; /* key length, w/terminating null and padding */
|
|
- void * end[];
|
|
/* if it_flags & ITEM_CAS we have 8 bytes CAS */
|
|
/* then null-terminated key */
|
|
/* then " flags length\r\n" (no terminating null) */
|
|
|