summaryrefslogtreecommitdiffstatshomepage
path: root/py/malloc.c
diff options
context:
space:
mode:
authorDamien <damien.p.george@gmail.com>2013-12-29 19:33:23 +0000
committerDamien <damien.p.george@gmail.com>2013-12-29 19:33:23 +0000
commit732407f1bf12364375162e8fb73816532a5d139c (patch)
treebf795d7bab01d6d603eec761affac7091be9606a /py/malloc.c
parenta1c8e5737cebba08909104d47c1dfd16ef80e6a1 (diff)
downloadmicropython-732407f1bf12364375162e8fb73816532a5d139c.tar.gz
micropython-732407f1bf12364375162e8fb73816532a5d139c.zip
Change memory allocation API to require size for free and realloc.
Diffstat (limited to 'py/malloc.c')
-rw-r--r--py/malloc.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/py/malloc.c b/py/malloc.c
index 2f8b5f78b5..c65d38a968 100644
--- a/py/malloc.c
+++ b/py/malloc.c
@@ -5,12 +5,6 @@
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;
@@ -37,20 +31,26 @@ void *m_malloc0(int num_bytes) {
return ptr;
}
-void *m_realloc(void *ptr, int num_bytes) {
- if (num_bytes == 0) {
+void *m_realloc(void *ptr, int old_num_bytes, int new_num_bytes) {
+ if (new_num_bytes == 0) {
free(ptr);
return NULL;
}
- ptr = realloc(ptr, num_bytes);
+ ptr = realloc(ptr, new_num_bytes);
if (ptr == NULL) {
- printf("could not allocate memory, reallocating %d bytes\n", num_bytes);
+ printf("could not allocate memory, reallocating %d bytes\n", new_num_bytes);
return NULL;
}
- total_bytes_allocated += num_bytes;
+ total_bytes_allocated += new_num_bytes;
return ptr;
}
+void m_free(void *ptr, int num_bytes) {
+ if (ptr != NULL) {
+ free(ptr);
+ }
+}
+
int m_get_total_bytes_allocated(void) {
return total_bytes_allocated;
}