From 5783505b99eeb53c271d2437153a5e4a7f278d4d Mon Sep 17 00:00:00 2001 From: Thomas Martitz Date: Fri, 7 Oct 2011 19:29:18 +0000 Subject: Add two macros for char*-based pointer arithmetic and use it in font.c This fixes errornous pointer addition (+ on a short*), which crashed in some situation. Fixes FS#12317 and should hopefully get the clips booting again. Thanks to Jonathan Gordon for spotting the bad pointer arithmetic. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30724 a1c6a512-1295-4272-9138-f99709370657 --- firmware/export/system.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'firmware/export') diff --git a/firmware/export/system.h b/firmware/export/system.h index cec47f1a71..aa079940d1 100644 --- a/firmware/export/system.h +++ b/firmware/export/system.h @@ -124,6 +124,8 @@ int get_cpu_boost_counter(void); ptr = (typeof(ptr))tmp_ptr1; \ } +#define PTR_ADD(ptr, x) ((typeof(ptr))((char*)(ptr) + (x))) +#define PTR_SUB(ptr, x) ((typeof(ptr))((char*)(ptr) - (x))) /* newer? SDL includes endian.h, So we ignore it */ #if (CONFIG_PLATFORM & PLATFORM_HOSTED) || defined(__PCTOOL__) -- cgit v1.2.3