diff options
author | Damien <damien.p.george@gmail.com> | 2013-10-04 19:53:11 +0100 |
---|---|---|
committer | Damien <damien.p.george@gmail.com> | 2013-10-04 19:53:11 +0100 |
commit | 429d71943d6b94c7dc3c40a39ff1a09742c77dc2 (patch) | |
tree | b0fd643076254656c358806d7e47c18f796a54f3 /py/malloc.c | |
download | micropython-429d71943d6b94c7dc3c40a39ff1a09742c77dc2.tar.gz micropython-429d71943d6b94c7dc3c40a39ff1a09742c77dc2.zip |
Initial commit.
Diffstat (limited to 'py/malloc.c')
-rw-r--r-- | py/malloc.c | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/py/malloc.c b/py/malloc.c new file mode 100644 index 0000000000..8775f68aa3 --- /dev/null +++ b/py/malloc.c @@ -0,0 +1,56 @@ +#include <stdio.h> +#include <stdlib.h> + +#include "misc.h" + +static int total_bytes_allocated = 0; + +void m_free(void *ptr) { + if (ptr != NULL) { + free(ptr); + } +} + +void *m_malloc(int num_bytes) { + if (num_bytes == 0) { + return NULL; + } + void *ptr = malloc(num_bytes); + if (ptr == NULL) { + printf("could not allocate memory, allocating %d bytes\n", num_bytes); + return NULL; + } + total_bytes_allocated += num_bytes; + return ptr; +} + +void *m_malloc0(int num_bytes) { + if (num_bytes == 0) { + return NULL; + } + void *ptr = calloc(1, num_bytes); + if (ptr == NULL) { + printf("could not allocate memory, allocating %d bytes\n", num_bytes); + return NULL; + } + total_bytes_allocated += num_bytes; + return ptr; +} + +void *m_realloc(void *ptr, int num_bytes) { + if (num_bytes == 0) { + free(ptr); + return NULL; + } + ptr = realloc(ptr, num_bytes); + if (ptr == NULL) { + printf("could not allocate memory, reallocating %d bytes\n", num_bytes); + return NULL; + } + total_bytes_allocated += num_bytes; + return ptr; +} + +int m_get_total_bytes_allocated() { + return total_bytes_allocated; +} |