summaryrefslogtreecommitdiff
path: root/lib/rbcodec/codecs/libtremor/codebook.c
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2017-01-16 00:10:38 +0100
committerGerrit Rockbox <gerrit@rockbox.org>2017-02-04 17:24:47 +0100
commitd7871914acd2ed77f43344e36e08944524a67d9e (patch)
tree7bcef243d9b53c3703c305b8a5f9f8a8488eabfb /lib/rbcodec/codecs/libtremor/codebook.c
parent1245c5fe61f6ca8e1980a33a8b8f7ea4322829fd (diff)
downloadrockbox-d7871914acd2ed77f43344e36e08944524a67d9e.tar.gz
rockbox-d7871914acd2ed77f43344e36e08944524a67d9e.zip
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
Diffstat (limited to 'lib/rbcodec/codecs/libtremor/codebook.c')
-rw-r--r--lib/rbcodec/codecs/libtremor/codebook.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/rbcodec/codecs/libtremor/codebook.c b/lib/rbcodec/codecs/libtremor/codebook.c
index 7087f0a323..f3ac5a2b7e 100644
--- a/lib/rbcodec/codecs/libtremor/codebook.c
+++ b/lib/rbcodec/codecs/libtremor/codebook.c
@@ -293,7 +293,7 @@ static long decode_packed_block(codebook *book, oggpack_buffer *b,
293 if(b->endbyte < b->storage - 8) { 293 if(b->endbyte < b->storage - 8) {
294 ogg_uint32_t *ptr; 294 ogg_uint32_t *ptr;
295 unsigned long bit, bitend; 295 unsigned long bit, bitend;
296 unsigned long adr; 296 intptr_t adr;
297 ogg_uint32_t cache = 0; 297 ogg_uint32_t cache = 0;
298 int cachesize = 0; 298 int cachesize = 0;
299 const unsigned int cachemask = (1<<book->dec_firsttablen)-1; 299 const unsigned int cachemask = (1<<book->dec_firsttablen)-1;
@@ -303,7 +303,7 @@ static long decode_packed_block(codebook *book, oggpack_buffer *b,
303 const ogg_uint32_t *book_codelist = book->codelist; 303 const ogg_uint32_t *book_codelist = book->codelist;
304 const char *book_dec_codelengths = book->dec_codelengths; 304 const char *book_dec_codelengths = book->dec_codelengths;
305 305
306 adr = (unsigned long)b->ptr; 306 adr = (intptr_t)b->ptr;
307 bit = (adr&3)*8+b->endbit; 307 bit = (adr&3)*8+b->endbit;
308 ptr = (ogg_uint32_t*)(adr&~3); 308 ptr = (ogg_uint32_t*)(adr&~3);
309 bitend = ((adr&3)+(b->storage-b->endbyte))*8; 309 bitend = ((adr&3)+(b->storage-b->endbyte))*8;
@@ -334,7 +334,7 @@ static long decode_packed_block(codebook *book, oggpack_buffer *b,
334 cache >>= l; 334 cache >>= l;
335 } 335 }
336 336
337 adr=(unsigned long)b->ptr; 337 adr=(intptr_t)b->ptr;
338 bit-=(adr&3)*8+cachesize; 338 bit-=(adr&3)*8+cachesize;
339 b->endbyte+=bit/8; 339 b->endbyte+=bit/8;
340 b->ptr+=bit/8; 340 b->ptr+=bit/8;