Change memory allocation API to require size for free and realloc.
diff --git a/py/malloc.c b/py/malloc.c
index 2f8b5f7..c65d38a 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 @@
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;
}