Commit a58d2005 authored by Sergei Golubchik's avatar Sergei Golubchik

win32: compilation failures, maria.test failure

include/my_global.h:
  enable compile_time_assert for all compilers
include/waiting_threads.h:
  1. don't #extern "C" system includes, they don't like it.
  2. remove any padding from WT_RESOURCE_ID structure - we want
  to compare it with memcmp
mysys/waiting_threads.c:
  assert that WT_RESOURCE_ID can be compared with memcmp
  and has no random padding bytes
parent f8fc47f0
......@@ -478,7 +478,7 @@ C_MODE_END
#include <assert.h>
/* an assert that works at compile-time. only for constant expression */
#ifndef __GNUC__
#ifdef _some_old_compiler_that_does_not_understand_the_construct_below_
#define compile_time_assert(X) do { } while(0)
#else
#define compile_time_assert(X) \
......
......@@ -19,10 +19,10 @@
#include <my_global.h>
#include <my_sys.h>
C_MODE_START
#include <lf.h>
C_MODE_START
typedef struct st_wt_resource_id WT_RESOURCE_ID;
typedef struct st_wt_resource_type {
......@@ -30,10 +30,13 @@ typedef struct st_wt_resource_type {
const void *(*make_key)(WT_RESOURCE_ID *id, uint *len);
} WT_RESOURCE_TYPE;
/* we want to compare this struct with memcmp, make it packed */
#pragma pack(push,1)
struct st_wt_resource_id {
WT_RESOURCE_TYPE *type;
ulonglong value;
WT_RESOURCE_TYPE *type;
};
#pragma pack(pop)
#define WT_WAIT_STATS 24
#define WT_CYCLE_STATS 32
......
......@@ -347,6 +347,8 @@ void wt_thd_destroy(WT_THD *thd)
*/
int wt_resource_id_memcmp(void *a, void *b)
{
/* assert that the structure is not padded with random bytes */
compile_time_assert(sizeof(WT_RESOURCE_ID)==sizeof(ulonglong)+sizeof(void*));
return memcmp(a, b, sizeof(WT_RESOURCE_ID));
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment