diff --git a/core/include/oneway_malloc.h b/core/include/oneway_malloc.h index 6a8df5f8e7..56daf2cc80 100644 --- a/core/include/oneway_malloc.h +++ b/core/include/oneway_malloc.h @@ -12,6 +12,7 @@ #include void* _malloc(size_t size); +void* _realloc(void *ptr, size_t size); void _free (void* ptr); /** @} */ diff --git a/core/oneway_malloc.c b/core/oneway_malloc.c index 51d6d53967..10c76c9c38 100644 --- a/core/oneway_malloc.c +++ b/core/oneway_malloc.c @@ -35,6 +35,13 @@ void *_malloc(size_t size) { } } +void *_realloc(void *ptr, size_t size) { + void* newptr = _malloc(size); + memcpy(newptr, ptr, size); + free(ptr); + return newptr; +} + void _free(void* ptr) { DEBUG("_free(): block at 0x%X lost.\n", (unsigned int)ptr); } diff --git a/cpu/msp430/include/malloc.h b/cpu/msp430/include/malloc.h index faddc99715..2ab076c6a3 100644 --- a/cpu/msp430/include/malloc.h +++ b/cpu/msp430/include/malloc.h @@ -4,6 +4,7 @@ #include "oneway_malloc.h" #define malloc _malloc +#define realloc _realloc #define free _free #endif /* __MALLOC_H */