Bladeren bron

Fixed warning C4366: The result of the unary '&' operator may be unaligned

Sam Lantinga 1 jaar geleden
bovenliggende
commit
cb811ba463
1 gewijzigde bestanden met toevoegingen van 5 en 3 verwijderingen
  1. 5 3
      src/joystick/hidapi/SDL_hidapi_xboxone.c

+ 5 - 3
src/joystick/hidapi/SDL_hidapi_xboxone.c

@@ -1225,17 +1225,19 @@ static int EncodeVariableInt(Uint8 *buf, Uint32 val)
     return i + 1;
 }
 
-static int DecodeVariableInt(const Uint8 *data, int len, Uint32 *val)
+static int DecodeVariableInt(const Uint8 *data, int len, void *out)
 {
     int i;
+    Uint32 val = 0;
 
-    for (i = 0; i < sizeof(*val) && i < len; i++) {
-        *val |= (data[i] & 0x7F) << (i * 7);
+    for (i = 0; i < sizeof(val) && i < len; i++) {
+        val |= (data[i] & 0x7F) << (i * 7);
 
         if (!(data[i] & 0x80)) {
             break;
         }
     }
+    SDL_memcpy(out, &val, sizeof(val));
     return i + 1;
 }