Reworked the word/dword conversion code

The word/dword conversion macros should be more robust now, using type casts where needed.
This commit is contained in:
Olaf Barthel
2016-03-06 15:23:03 +01:00
parent 4893011dae
commit 11c3b7891d
+2 -2
View File
@@ -25,8 +25,8 @@ typedef unsigned long dword;
#define PVAL(buf,pos) ((unsigned)BVAL(buf,pos))
#define BVAL(buf,pos) (((unsigned char *)(buf))[pos])
#define WVAL(buf,pos) (PVAL(buf,pos)|PVAL(buf,(pos)+1)<<8)
#define DVAL(buf,pos) (WVAL(buf,pos)|WVAL(buf,(pos)+2)<<16)
#define WVAL(buf,pos) (((word)PVAL(buf,pos))|((word)PVAL(buf,(pos)+1))<<8)
#define DVAL(buf,pos) (((dword)WVAL(buf,pos))|((dword)WVAL(buf,(pos)+2))<<16)
#define BSET(buf,pos,val) (BVAL(buf,pos)=((val) & 0xFF))
#define WSET(buf,pos,val) do { BVAL(buf,pos)=((val) & 0xFF); BVAL(buf,(pos)+1)=(((unsigned)(val))>>8) & 0xFF; } while (0)