diff options
author | inmarket <andrewh@inmarket.com.au> | 2013-07-20 21:57:01 +1000 |
---|---|---|
committer | inmarket <andrewh@inmarket.com.au> | 2013-07-20 21:57:01 +1000 |
commit | 2bef5da2f3a3a5c3f1e667d5f50c2f28f6d96baf (patch) | |
tree | 781f37ef9fc7ded9180ced186bb205ffe1fd13d2 /src/gos | |
parent | b91097e3116b6edd21f00478b115cb611fff34b1 (diff) | |
download | uGFX-2bef5da2f3a3a5c3f1e667d5f50c2f28f6d96baf.tar.gz uGFX-2bef5da2f3a3a5c3f1e667d5f50c2f28f6d96baf.tar.bz2 uGFX-2bef5da2f3a3a5c3f1e667d5f50c2f28f6d96baf.zip |
Added gfxRealloc()
Diffstat (limited to 'src/gos')
-rw-r--r-- | src/gos/chibios.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/gos/chibios.c b/src/gos/chibios.c index 6ce06d94..0b501110 100644 --- a/src/gos/chibios.c +++ b/src/gos/chibios.c @@ -13,6 +13,8 @@ #if GFX_USE_OS_CHIBIOS +#include <string.h> + #if !CH_USE_MUTEXES #error "GOS: CH_USE_MUTEXES must be defined in chconf.h" #endif @@ -29,6 +31,22 @@ void _gosInit(void) { } } +void *gfxRealloc(void *ptr, size_t oldsz, size_t newsz) { + void *np; + + if (newsz <= oldsz) + return ptr; + + np = gfxAlloc(newsz); + if (!np) + return 0; + + if (oldsz) + memcpy(np, ptr, oldsz); + + return np; +} + void gfxSleepMilliseconds(delaytime_t ms) { switch(ms) { case TIME_IMMEDIATE: chThdYield(); return; |