summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2021-09-24 06:51:51 +1000
committer Vas Crabb <vas@vastheman.com>2021-09-24 06:51:51 +1000
commit3a2ab1a6c6238aa2c027651ec854ade488034d43 (patch)
tree885f8acb0527e8468301f880d9e3538fdf8a84f4 /src/lib
parentb2116467d6d1d592a306180e1a41a89d89926cde (diff)
util/delegate.h: Use "compatible" delegates for MinGW GCC i686.
The Itanium delegate has questionable value on on MinGW i686 as it injects a conditional branch in the hot path for delegates anyway to deal with the different __thiscall convention. It's somehow breaking and causing memory corruption in full builds, but I don't have the time to work out exactly which delegate type is the problematic one, especially not with a release coming soon. This will probably cause 32-bit MinGW builds to become substantially larger.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/util/delegate.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/lib/util/delegate.h b/src/lib/util/delegate.h
index 223467d2fbc..609b6667bfc 100644
--- a/src/lib/util/delegate.h
+++ b/src/lib/util/delegate.h
@@ -141,9 +141,10 @@
#elif defined(__GNUC__)
// 32bit MINGW asks for different convention
#if defined(__MINGW32__) && !defined(__x86_64__) && defined(__i386__)
- #define MAME_DELEGATE_USE_TYPE MAME_DELEGATE_TYPE_ITANIUM
- #define MAME_DELEGATE_MEMBER_ABI __thiscall
- #define MAME_DELEGATE_DIFFERENT_MEMBER_ABI 1
+ #define MAME_DELEGATE_USE_TYPE MAME_DELEGATE_TYPE_COMPATIBLE
+ //#define MAME_DELEGATE_USE_TYPE MAME_DELEGATE_TYPE_ITANIUM
+ //#define MAME_DELEGATE_MEMBER_ABI __thiscall
+ //#define MAME_DELEGATE_DIFFERENT_MEMBER_ABI 1
#elif defined(__clang__) && defined(__i386__) && defined(_WIN32)
#define MAME_DELEGATE_USE_TYPE MAME_DELEGATE_TYPE_COMPATIBLE
#else