Added GCFREE
authorstefan <none@none>
Sat, 13 Dec 2003 18:41:27 +0000 (18:41 +0000)
committerstefan <none@none>
Sat, 13 Dec 2003 18:41:27 +0000 (18:41 +0000)
mm/boehm.c
mm/boehm.h
src/mm/boehm.c
src/mm/boehm.h

index 06c1d2a2c6df59d4d36aba02b6dcf7ac90c3f221..b6f1aae665c1997670c304707ab359da32248746 100644 (file)
@@ -26,7 +26,7 @@
 
    Authors: Stefan Ring
 
-   $Id: boehm.c 689 2003-12-05 18:03:47Z stefan $
+   $Id: boehm.c 738 2003-12-13 18:41:27Z stefan $
 
 */
 
@@ -75,6 +75,12 @@ static void *stackcall_realloc(void *p, u4 bytelength)
        return GC_REALLOC(p, bytelength);
 }
 
+static void *stackcall_free(void *p, u4 bytelength)
+{
+       GC_FREE(p);
+       return NULL;
+}
+
 
 #ifdef USE_THREADS
 #define MAINTHREADCALL(r,m,pp,ll) \
@@ -137,6 +143,13 @@ void *heap_reallocate(void *p, u4 bytelength)
        return result;
 }
 
+void heap_free(void *p)
+{
+       void *result;
+
+       MAINTHREADCALL(result, stackcall_free, p, 0);
+}
+
 
 void heap_init (u4 size, u4 startsize, void **stackbottom)
 {
index 0507f79fc41dc8017f12ee97d2968b80ea37b474..1c9fd7b7deb84e8ba84ec2ebc9e2e2dfdcf85616 100644 (file)
@@ -26,7 +26,7 @@
 
    Authors: Christian Thalinger
 
-   $Id: boehm.h 580 2003-11-09 19:07:39Z twisti $
+   $Id: boehm.h 738 2003-12-13 18:41:27Z stefan $
 
 */
 
@@ -52,6 +52,7 @@ void *heap_alloc_uncollectable(u4 bytelength);
 void runboehmfinalizer(void *o, void *p);
 void *heap_allocate (u4 bytelength, bool references, methodinfo *finalizer);
 void *heap_reallocate(void *p, u4 bytelength);
+void heap_free(void *p);
 void heap_init (u4 size, u4 startsize, void **stackbottom);
 void heap_close();
 void heap_addreference (void **reflocation);
index 06c1d2a2c6df59d4d36aba02b6dcf7ac90c3f221..b6f1aae665c1997670c304707ab359da32248746 100644 (file)
@@ -26,7 +26,7 @@
 
    Authors: Stefan Ring
 
-   $Id: boehm.c 689 2003-12-05 18:03:47Z stefan $
+   $Id: boehm.c 738 2003-12-13 18:41:27Z stefan $
 
 */
 
@@ -75,6 +75,12 @@ static void *stackcall_realloc(void *p, u4 bytelength)
        return GC_REALLOC(p, bytelength);
 }
 
+static void *stackcall_free(void *p, u4 bytelength)
+{
+       GC_FREE(p);
+       return NULL;
+}
+
 
 #ifdef USE_THREADS
 #define MAINTHREADCALL(r,m,pp,ll) \
@@ -137,6 +143,13 @@ void *heap_reallocate(void *p, u4 bytelength)
        return result;
 }
 
+void heap_free(void *p)
+{
+       void *result;
+
+       MAINTHREADCALL(result, stackcall_free, p, 0);
+}
+
 
 void heap_init (u4 size, u4 startsize, void **stackbottom)
 {
index 0507f79fc41dc8017f12ee97d2968b80ea37b474..1c9fd7b7deb84e8ba84ec2ebc9e2e2dfdcf85616 100644 (file)
@@ -26,7 +26,7 @@
 
    Authors: Christian Thalinger
 
-   $Id: boehm.h 580 2003-11-09 19:07:39Z twisti $
+   $Id: boehm.h 738 2003-12-13 18:41:27Z stefan $
 
 */
 
@@ -52,6 +52,7 @@ void *heap_alloc_uncollectable(u4 bytelength);
 void runboehmfinalizer(void *o, void *p);
 void *heap_allocate (u4 bytelength, bool references, methodinfo *finalizer);
 void *heap_reallocate(void *p, u4 bytelength);
+void heap_free(void *p);
 void heap_init (u4 size, u4 startsize, void **stackbottom);
 void heap_close();
 void heap_addreference (void **reflocation);