From 2bdbfd334bba93f75b2952e8e76f20ed29fb2bd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Lindstr=C3=B6m?= Date: Wed, 18 Mar 2015 12:18:39 +0200 Subject: [PATCH] Fix assertion failure seen on Buildbot win32-debug There is a bug in Visual Studio 2010 Visual Studio has a feature "Checked Iterators". In a debug build, every iterator operation is checked at runtime for errors, e g, out of range. Disable this "Checked Iterators" for Windows and Debug if defined. --- storage/innobase/sync/sync0sync.cc | 13 +++++++++++++ storage/xtradb/sync/sync0sync.cc | 13 +++++++++++++ 2 files changed, 26 insertions(+) diff --git a/storage/innobase/sync/sync0sync.cc b/storage/innobase/sync/sync0sync.cc index e62e4e7bc30..2928fb0598b 100644 --- a/storage/innobase/sync/sync0sync.cc +++ b/storage/innobase/sync/sync0sync.cc @@ -47,6 +47,19 @@ Created 9/5/1995 Heikki Tuuri #include "ha_prototypes.h" #include "my_cpu.h" +/* There is a bug in Visual Studio 2010 +Visual Studio has a feature "Checked Iterators". In a debug build, every +iterator operation is checked at runtime for errors, e g, out of range. +Disable this "Checked Iterators" for Windows and Debug if defined. +*/ +#ifdef UNIV_DEBUG +#ifdef __WIN__ +#ifdef _ITERATOR_DEBUG_LEVEL +#define _ITERATOR_DEBUG_LEVEL 0 +#endif /* _ITERATOR_DEBUG_LEVEL */ +#endif /* __WIN__*/ +#endif /* UNIV_DEBUG */ + #include /* diff --git a/storage/xtradb/sync/sync0sync.cc b/storage/xtradb/sync/sync0sync.cc index fcc2e01c1f4..b8766699413 100644 --- a/storage/xtradb/sync/sync0sync.cc +++ b/storage/xtradb/sync/sync0sync.cc @@ -48,6 +48,19 @@ Created 9/5/1995 Heikki Tuuri #include "ha_prototypes.h" #include "my_cpu.h" +/* There is a bug in Visual Studio 2010 +Visual Studio has a feature "Checked Iterators". In a debug build, every +iterator operation is checked at runtime for errors, e g, out of range. +Disable this "Checked Iterators" for Windows and Debug if defined. +*/ +#ifdef UNIV_DEBUG +#ifdef __WIN__ +#ifdef _ITERATOR_DEBUG_LEVEL +#define _ITERATOR_DEBUG_LEVEL 0 +#endif /* _ITERATOR_DEBUG_LEVEL */ +#endif /* __WIN__*/ +#endif /* UNIV_DEBUG */ + #include /*