ubfix for strict aliasing violation (#2341)

This commit is contained in:
cawtds
2026-08-04 06:35:12 +02:00
committed by GitHub
parent 83df84e406
commit 98b522cda9

View File

@@ -2183,6 +2183,9 @@ static bool8 DoHandshake(void)
u8 i;
u8 playerCount;
u16 minRecv;
#ifdef UBFIX
u64 recvSiomlt;
#endif
playerCount = 0;
minRecv = 0xFFFF;
@@ -2194,7 +2197,12 @@ static bool8 DoHandshake(void)
{
REG_SIOMLT_SEND = SLAVE_HANDSHAKE;
}
#ifdef UBFIX
recvSiomlt = REG_SIOMLT_RECV;
memcpy(gLink.handshakeBuffer, &recvSiomlt, sizeof(gLink.handshakeBuffer));
#else
*(u64 *)gLink.handshakeBuffer = REG_SIOMLT_RECV;
#endif
REG_SIOMLT_RECV = 0;
gLink.handshakeAsMaster = FALSE;
for (i = 0; i < MAX_LINK_PLAYERS; i++)
@@ -2234,8 +2242,13 @@ static void DoRecv(void)
u16 recv[4];
u8 i;
u8 index;
#ifdef UBFIX
u64 recvSiomlt = REG_SIOMLT_RECV;
memcpy(recv, &recvSiomlt, sizeof(recv));
#else
*(u64 *)recv = REG_SIOMLT_RECV;
#endif
if (gLink.sendCmdIndex == 0)
{
for (i = 0; i < gLink.playerCount; i++)