diff --git a/libraries/libmdb/mdb.c b/libraries/libmdb/mdb.c index 7150d50..db5a11b 100644 --- a/libraries/libmdb/mdb.c +++ b/libraries/libmdb/mdb.c @@ -243,7 +243,7 @@ typedef ULONG pgno_t; */ #define DKEY(x) mdb_dkey(x, kbuf) #else -#define DKBUF +#define DKBUF typedef int dummy_kbuf /* so we can put ';' after */ #define DKEY(x) #endif @@ -268,7 +268,7 @@ typedef ULONG pgno_t; #define LAZY_RWLOCK_WRLOCK(x) /** Grab the DB table read lock */ #define LAZY_RWLOCK_RDLOCK(x) - /** Declare the DB table rwlock */ + /** Declare the DB table rwlock. Should not be followed by ';'. */ #define LAZY_RWLOCK_DEF(x) /** Initialize the DB table rwlock */ #define LAZY_RWLOCK_INIT(x,y) @@ -781,7 +781,7 @@ struct MDB_env { /** ID2L of pages that were written during a write txn */ ID2 me_dirty_list[MDB_IDL_UM_SIZE]; /** rwlock for the DB tables, if #LAZY_LOCKS is false */ - LAZY_RWLOCK_DEF(me_dblock); + LAZY_RWLOCK_DEF(me_dblock) #ifdef _WIN32 HANDLE me_rmutex; /* Windows mutexes don't reside in shared mem */ HANDLE me_wmutex; @@ -2316,8 +2316,8 @@ cintcmp(const MDB_val *a, const MDB_val *b) unsigned short *u, *c; int x; - u = a->mv_data + a->mv_size; - c = b->mv_data + a->mv_size; + u = (unsigned short *) ((char *) a->mv_data + a->mv_size); + c = (unsigned short *) ((char *) b->mv_data + a->mv_size); do { x = *--u - *--c; } while(!x && u > (unsigned short *)a->mv_data);