From 5f4d687cb9879654c147f48f195b5e0177c480f1 Mon Sep 17 00:00:00 2001 From: Rafaël Carré Date: Thu, 10 Jun 2010 02:26:15 +0000 Subject: rockboy: use unions instead of type-punning avoid a warning when using -Os git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26734 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/rockboy/save.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'apps/plugins/rockboy/save.c') diff --git a/apps/plugins/rockboy/save.c b/apps/plugins/rockboy/save.c index 4211ceb77f..817973bcb2 100644 --- a/apps/plugins/rockboy/save.c +++ b/apps/plugins/rockboy/save.c @@ -16,17 +16,21 @@ #define LIL(x) ((x<<24)|((x&0xff00)<<8)|((x>>8)&0xff00)|(x>>24)) #endif -#define I1(s, p) { 1, s, p } -#define I2(s, p) { 2, s, p } -#define I4(s, p) { 4, s, p } +#define I1(s, p) { 1, { s }, p } +#define I2(s, p) { 2, { s }, p } +#define I4(s, p) { 4, { s }, p } #define R(r) I1(#r, &R_##r) -#define NOSAVE { -1, "\0\0\0\0", 0 } -#define END { 0, "\0\0\0\0", 0 } +#define NOSAVE { -1, { "\0\0\0\0" }, 0 } +#define END { 0, { "\0\0\0\0" }, 0 } struct svar { int len; - char key[4]; + union + { + char key_[4]; + un32 key; + } k; void *ptr; }; @@ -176,7 +180,7 @@ void loadstate(int fd) { for (i = 0; svars[i].ptr; i++) { - if (header[j][0] != *(un32 *)svars[i].key) + if (header[j][0] != svars[i].k.key) continue; d = LIL(header[j][1]); switch (svars[i].len) @@ -239,7 +243,7 @@ void savestate(int fd) for (i = 0; svars[i].len > 0; i++) { - header[i][0] = *(un32 *)svars[i].key; + header[i][0] = svars[i].k.key; switch (svars[i].len) { case 1: -- cgit v1.2.3