]> git.sur5r.net Git - openldap/commitdiff
Factor out MDB_SIZE_MAX, MDB_FMT_Y, MDB_FMT_Z
authorHallvard Furuseth <hallvard@openldap.org>
Sat, 23 Jul 2016 10:08:12 +0000 (12:08 +0200)
committerHallvard Furuseth <hallvard@openldap.org>
Sat, 23 Jul 2016 10:08:12 +0000 (12:08 +0200)
libraries/liblmdb/lmdb.h
libraries/liblmdb/mdb.c
libraries/liblmdb/mdb_dump.c
libraries/liblmdb/mdb_load.c
libraries/liblmdb/mdb_stat.c
libraries/liblmdb/midl.h

index d30ab648b3d30fee2c095a0865ce61cebc64af60..92dd753d36e574422f2de3d503cd759adb10e21a 100644 (file)
@@ -179,13 +179,32 @@ typedef   int     mdb_mode_t;
 typedef        mode_t  mdb_mode_t;
 #endif
 
+#ifdef _WIN32
+# define MDB_FMT_Z     "I"
+#else
+# define MDB_FMT_Z     "z"                     /**< printf/scanf format modifier for size_t */
+#endif
+
 #ifdef MDB_VL32
 typedef uint64_t       mdb_size_t;
+#define MDB_SIZE_MAX UINT64_MAX
+#ifdef _WIN32
+# define MDB_FMT_Y     "I64"
+#else
+# define MDB_FMT_Y     "ll"
+#endif
 #define mdb_env_create mdb_env_create_vl32     /**< Prevent mixing with non-VL32 builds */
 #else
 typedef size_t mdb_size_t;
+# define MDB_SIZE_MAX  SIZE_MAX        /**< max #mdb_size_t */
+# define MDB_FMT_Y             MDB_FMT_Z       /**< Obsolescent, see #MDB_PRIz()/#MDB_SCNz() */
 #endif
 
+/** #mdb_size_t printf formats, \b t = one of [diouxX] without quotes */
+#define MDB_PRIz(t)    MDB_FMT_Y #t
+/** #mdb_size_t scanf formats, \b t = one of [dioux] without quotes */
+#define MDB_SCNz(t)    MDB_FMT_Y #t
+
 /** An abstraction for a file handle.
  *     On POSIX systems file handles are small integers. On Windows
  *     they're opaque pointers.
index df31780d0c3dcd6f05d660918cf3c9a7218ed15e..01c259f849937d80820571f2a18807ce07422db9 100644 (file)
@@ -355,12 +355,10 @@ typedef HANDLE mdb_mutex_t, mdb_mutexref_t;
 #else
 #define MDB_PROCESS_QUERY_LIMITED_INFORMATION 0x1000
 #endif
-#define        Z       "I"
 #else
 #define THREAD_RET     void *
 #define THREAD_CREATE(thr,start,arg)   pthread_create(&thr,NULL,start,arg)
 #define THREAD_FINISH(thr)     pthread_join(thr,NULL)
-#define        Z       "z"                     /**< printf format modifier for size_t */
 
        /** For MDB_LOCK_FORMAT: True if readers take a pid lock in the lockfile */
 #define MDB_PIDLOCK                    1
@@ -458,15 +456,8 @@ typedef pthread_mutex_t mdb_mutex_t[1], *mdb_mutexref_t;
 #define        GET_PAGESIZE(x) ((x) = sysconf(_SC_PAGE_SIZE))
 #endif
 
-#ifdef MDB_VL32
-#ifdef _WIN32
-#define        Y       "I64"
-#else
-#define        Y       "ll"
-#endif
-#else
-#define Y      Z
-#endif
+#define        Z       MDB_FMT_Z       /**< printf/scanf format modifier for size_t */
+#define        Y       MDB_FMT_Y       /**< printf/scanf format modifier for #mdb_size_t */
 
 #if defined(_WIN32) || defined(MDB_USE_POSIX_SEM)
 #define MNAME_LEN      32
index 5f3125fa2aea0f4f2c3da3f28137bda13b8177d0..538b2439509176f6493de0af6695ff544f79d728 100644 (file)
 #include <signal.h>
 #include "lmdb.h"
 
-#ifdef _WIN32
-#define Z      "I"
-#else
-#define Z      "z"
-#endif
-#ifdef MDB_VL32
-#ifdef _WIN32
-#define        Y       "I64"
-#else
-#define        Y       "ll"
-#endif
-#else
-#define Y      Z
-#endif
+#define Y      MDB_FMT_Y
 
 #define PRINT  1
 static int mode;
index 27aee4029000e9b1555c680e23c7f09910378648..fe1d846b53e28eb6477e2bad41706b626902e705 100644 (file)
@@ -38,20 +38,8 @@ static MDB_envinfo info;
 
 static MDB_val kbuf, dbuf;
 
-#ifdef _WIN32
-#define Z      "I"
-#else
-#define Z      "z"
-#endif
-#ifdef MDB_VL32
-#ifdef _WIN32
-#define        Y       "I64"
-#else
-#define        Y       "ll"
-#endif
-#else
-#define Y      Z
-#endif
+#define Z      MDB_FMT_Z
+#define Y      MDB_FMT_Y
 
 #define STRLENOF(s)    (sizeof(s)-1)
 
index de5c3b514c58f8bb30a07940716dc488dcffa170..11c9e481d7772318c20d8470a4ce113f641cf6a1 100644 (file)
 #include <unistd.h>
 #include "lmdb.h"
 
-#ifdef _WIN32
-#define        Z       "I"
-#else
-#define        Z       "z"
-#endif
-#ifdef MDB_VL32
-#ifdef _WIN32
-#define        Y       "I64"
-#else
-#define        Y       "ll"
-#endif
-#else
-#define Y      Z
-#endif
+#define Z      MDB_FMT_Z
+#define Y      MDB_FMT_Y
 
 static void prstat(MDB_stat *ms)
 {
index b0d518ef035ec1d705a27ea29cdf738b35c83d40..dc532c44ff5254571d1367bad01814a5b7094df5 100644 (file)
@@ -26,8 +26,7 @@
 #ifndef _MDB_MIDL_H_
 #define _MDB_MIDL_H_
 
-#include <stddef.h>
-#include <inttypes.h>
+#include "lmdb.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -43,11 +42,7 @@ extern "C" {
        /** A generic unsigned ID number. These were entryIDs in back-bdb.
         *      Preferably it should have the same size as a pointer.
         */
-#ifdef MDB_VL32
-typedef uint64_t MDB_ID;
-#else
-typedef size_t MDB_ID;
-#endif
+typedef mdb_size_t MDB_ID;
 
        /** An IDL is an ID List, a sorted array of IDs. The first
         * element of the array is a counter for how many actual