diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2021-05-11 18:35:03 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2021-05-11 20:25:01 +0200 |
commit | ed11756d26c75864b40b2645d4f35ead20330876 (patch) | |
tree | ebdf22c631621287d5cfe9fc0c86de12bc09cf9f /core/variant/callable.h | |
parent | 048abb50aa8792958977cf398acadd5e9a1974db (diff) |
GDNative: Fix size mismatch on 32-bit platforms for Signal and Callable
Fixes #48645.
Diffstat (limited to 'core/variant/callable.h')
-rw-r--r-- | core/variant/callable.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/core/variant/callable.h b/core/variant/callable.h index d91bebfa5f..20d0804292 100644 --- a/core/variant/callable.h +++ b/core/variant/callable.h @@ -44,9 +44,9 @@ class CallableCustom; // is required. It is designed for the standard case (object and method) // but can be optimized or customized. +// Enforce 16 bytes with `alignas` to avoid arch-specific alignment issues on x86 vs armv7. class Callable { - //needs to be max 16 bytes in 64 bits - StringName method; + alignas(8) StringName method; union { uint64_t object = 0; CallableCustom *custom; @@ -138,8 +138,9 @@ public: // be put inside a Variant, but it is not // used by the engine itself. +// Enforce 16 bytes with `alignas` to avoid arch-specific alignment issues on x86 vs armv7. class Signal { - StringName name; + alignas(8) StringName name; ObjectID object; public: |