forked from len0rd/rockbox
Fix dangerous casts
On Windows 64-bit, the size of long is 32-bit, thus any pointer to long cast is not valid. In any case, one should use intptr_t and ptrdiff_t when casting to integers. This commit attempts to fix all instances reported by GCC. When relevant, I replaced code by the macros PTR_ADD, ALIGN_UP from system.h Change-Id: I2273b0e8465d3c4689824717ed5afa5ed238a2dc
This commit is contained in:
parent
1245c5fe61
commit
d7871914ac
27 changed files with 69 additions and 66 deletions
|
@ -293,7 +293,7 @@ static long decode_packed_block(codebook *book, oggpack_buffer *b,
|
|||
if(b->endbyte < b->storage - 8) {
|
||||
ogg_uint32_t *ptr;
|
||||
unsigned long bit, bitend;
|
||||
unsigned long adr;
|
||||
intptr_t adr;
|
||||
ogg_uint32_t cache = 0;
|
||||
int cachesize = 0;
|
||||
const unsigned int cachemask = (1<<book->dec_firsttablen)-1;
|
||||
|
@ -303,7 +303,7 @@ static long decode_packed_block(codebook *book, oggpack_buffer *b,
|
|||
const ogg_uint32_t *book_codelist = book->codelist;
|
||||
const char *book_dec_codelengths = book->dec_codelengths;
|
||||
|
||||
adr = (unsigned long)b->ptr;
|
||||
adr = (intptr_t)b->ptr;
|
||||
bit = (adr&3)*8+b->endbit;
|
||||
ptr = (ogg_uint32_t*)(adr&~3);
|
||||
bitend = ((adr&3)+(b->storage-b->endbyte))*8;
|
||||
|
@ -334,7 +334,7 @@ static long decode_packed_block(codebook *book, oggpack_buffer *b,
|
|||
cache >>= l;
|
||||
}
|
||||
|
||||
adr=(unsigned long)b->ptr;
|
||||
adr=(intptr_t)b->ptr;
|
||||
bit-=(adr&3)*8+cachesize;
|
||||
b->endbyte+=bit/8;
|
||||
b->ptr+=bit/8;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue