summaryrefslogtreecommitdiffstats
path: root/firmware/drivers/lcd-16bit-common.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 /firmware/drivers/lcd-16bit-common.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 'firmware/drivers/lcd-16bit-common.c')
-rw-r--r--firmware/drivers/lcd-16bit-common.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/firmware/drivers/lcd-16bit-common.c b/firmware/drivers/lcd-16bit-common.c
index d006b3900a..a7e80c7244 100644
--- a/firmware/drivers/lcd-16bit-common.c
+++ b/firmware/drivers/lcd-16bit-common.c
@@ -94,7 +94,7 @@ void lcd_clear_viewport(void)
{
do
{
- memcpy(dst, (void *)((long)dst + lcd_backdrop_offset),
+ memcpy(dst, PTR_ADD(dst, lcd_backdrop_offset),
len * sizeof(fb_data));
dst += step;
}
@@ -122,7 +122,7 @@ static void ICODE_ATTR clearpixel(fb_data *address)
static void ICODE_ATTR clearimgpixel(fb_data *address)
{
- *address = *(fb_data *)((long)address + lcd_backdrop_offset);
+ *address = *PTR_ADD(address, lcd_backdrop_offset);
}
static void ICODE_ATTR flippixel(fb_data *address)
@@ -244,7 +244,7 @@ void lcd_fillrect(int x, int y, int width, int height)
break;
case OPT_COPY:
- memcpy(dst, (void *)((long)dst + lcd_backdrop_offset),
+ memcpy(dst, PTR_ADD(dst, lcd_backdrop_offset),
len * sizeof(fb_data));
break;
@@ -395,7 +395,7 @@ void ICODE_ATTR lcd_mono_bitmap_part(const unsigned char *src, int src_x,
do
{
if (!(data & 0x01))
- *dst = *(fb_data *)((long)dst + bo);
+ *dst = *PTR_ADD(dst, bo);
dst += ROW_INC;
UPDATE_SRC;
@@ -435,7 +435,7 @@ void ICODE_ATTR lcd_mono_bitmap_part(const unsigned char *src, int src_x,
do
{
*dst = (data & 0x01) ? fg
- : *(fb_data *)((long)dst + bo);
+ : *PTR_ADD(dst, bo);
dst += ROW_INC;
UPDATE_SRC;
}