Fix for 'dereferencing type-punned pointer...' warning

This commit is contained in:
Ingo Ruhnke 2010-04-18 02:24:55 +02:00
parent ccbebc9a78
commit 785372e2cc
3 changed files with 4 additions and 4 deletions

View file

@ -237,12 +237,12 @@ Xbox360Controller::read(XboxGenericMsg& msg, bool verbose, int timeout)
if (is_guitar)
{
msg.type = XBOX_MSG_XBOX360_GUITAR;
msg.guitar = *reinterpret_cast<Xbox360GuitarMsg*>(data);
memcpy(&msg.guitar, data, sizeof(Xbox360GuitarMsg));
}
else
{
msg.type = XBOX_MSG_XBOX360;
msg.xbox360 = *reinterpret_cast<Xbox360Msg*>(data);
memcpy(&msg.xbox360, data, sizeof(Xbox360Msg));
}
return true;
}

View file

@ -156,7 +156,7 @@ Xbox360WirelessController::read(XboxGenericMsg& msg, bool verbose, int timeout)
else if (data[0] == 0x00 && data[1] == 0x01 && data[2] == 0x00 && data[3] == 0xf0 && data[4] == 0x00 && data[5] == 0x13)
{ // Event message
msg.type = XBOX_MSG_XBOX360;
msg.xbox360 = *reinterpret_cast<Xbox360Msg*>(&data[4]);
memcpy(&msg.xbox360, data+4, sizeof(Xbox360Msg));
return true;
}
else if (data[0] == 0x00 && data[1] == 0x00 && data[2] == 0x00 && data[3] == 0x13)

View file

@ -83,7 +83,7 @@ XboxController::read(XboxGenericMsg& msg, bool verbose, int timeout)
else if (ret == 20 && data[0] == 0x00 && data[1] == 0x14)
{
msg.type = XBOX_MSG_XBOX;
msg.xbox = *reinterpret_cast<XboxMsg*>(data);
memcpy(&msg.xbox, data, sizeof(XboxMsg));
return true;
}
return false;