summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/i_swap.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/i_swap.h b/src/i_swap.h
index d24f500e..065037a4 100644
--- a/src/i_swap.h
+++ b/src/i_swap.h
@@ -35,8 +35,11 @@
// Just use SDL's endianness swapping functions.
-#define SHORT(x) SDL_SwapLE16(x)
-#define LONG(x) SDL_SwapLE32(x)
+// These are deliberately cast to signed values; this is the behaviour
+// of the macros in the original source and some code relies on it.
+
+#define SHORT(x) ((signed short) SDL_SwapLE16(x))
+#define LONG(x) ((signed long) SDL_SwapLE32(x))
// Defines for checking the endianness of the system.