summaryrefslogtreecommitdiffstats
path: root/kernel/kls_dds
diff options
context:
space:
mode:
authorFrançois Andriot <francois.andriot@free.fr>2015-09-14 01:29:51 +0200
committerSlávek Banko <slavek.banko@axis.cz>2015-09-14 01:29:51 +0200
commit5fdf91b73be14ea616505bdd98c8002c94804172 (patch)
tree8f5acf5afbe22241c7b2ea7703384950eac62864 /kernel/kls_dds
parent53090f76505d2109d86175f6d002b69996d90eea (diff)
downloadlibksquirrel-5fdf91b73be14ea616505bdd98c8002c94804172.tar.gz
libksquirrel-5fdf91b73be14ea616505bdd98c8002c94804172.zip
Fix build warnings
Signed-off-by: François Andriot <francois.andriot@free.fr>
Diffstat (limited to 'kernel/kls_dds')
-rw-r--r--kernel/kls_dds/dds.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/kernel/kls_dds/dds.cpp b/kernel/kls_dds/dds.cpp
index c5551f0..4205816 100644
--- a/kernel/kls_dds/dds.cpp
+++ b/kernel/kls_dds/dds.cpp
@@ -564,7 +564,12 @@ static void FREE_ROWS(RGBAP **A, const int H)
void GetBits( uchar bit_array[16] )
{
- uint b = (uint &) bits[0];
+ // uint b = (uint &) bits[0];
+ /* avoid a warning
+ * "dereferencing type-punned pointer will break strict-aliasing rules"
+ * TODO: check endianness issues (but that was probably broken anyway) */
+ uint b;
+ memcpy(&b, &bits[0], sizeof(b));
bit_array[0] = uchar(b & 0x07); b >>= 3;
bit_array[1] = uchar(b & 0x07); b >>= 3;
bit_array[2] = uchar(b & 0x07); b >>= 3;
@@ -574,7 +579,8 @@ static void FREE_ROWS(RGBAP **A, const int H)
bit_array[6] = uchar(b & 0x07); b >>= 3;
bit_array[7] = uchar(b & 0x07); b >>= 3;
- b = (uint &) bits[3];
+ // b = (uint &) bits[3];
+ memcpy(&b, &bits[3], sizeof(b));
bit_array[8] = uchar(b & 0x07); b >>= 3;
bit_array[9] = uchar(b & 0x07); b >>= 3;
bit_array[10] = uchar(b & 0x07); b >>= 3;