From 6fc765c928460ad8a116f8dd1b8b1412fb997829 Mon Sep 17 00:00:00 2001
From: Damien George <damien.p.george@gmail.com>
Date: Fri, 7 Mar 2014 00:21:51 +0000
Subject: [PATCH] py: Revert to old gc_realloc for now.

---
 py/gc.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/py/gc.c b/py/gc.c
index cf1bdfbc5..b4822ee29 100644
--- a/py/gc.c
+++ b/py/gc.c
@@ -326,6 +326,24 @@ machine_uint_t gc_nbytes(void *ptr_in) {
     return 0;
 }
 
+// use this realloc for now, one below is broken
+void *gc_realloc(void *ptr, machine_uint_t n_bytes) {
+    machine_uint_t n_existing = gc_nbytes(ptr);
+    if (n_bytes <= n_existing) {
+        return ptr;
+    } else {
+        // TODO check if we can grow inplace
+        void *ptr2 = gc_alloc(n_bytes);
+        if (ptr2 == NULL) {
+            return ptr2;
+        }
+        memcpy(ptr2, ptr, n_existing);
+        gc_free(ptr);
+        return ptr2;
+    }
+}
+
+#if 0
 void *gc_realloc(void *ptr_in, machine_uint_t n_bytes) {
     void *ptr_out = NULL;
     machine_uint_t block = 0;
@@ -395,6 +413,7 @@ void *gc_realloc(void *ptr_in, machine_uint_t n_bytes) {
 
     return ptr_out;
 }
+#endif
 
 void gc_dump_info() {
     gc_info_t info;
-- 
GitLab