[svn:parrot] r49158 - branches/gc_massacre/src/gc

bacek at svn.parrot.org bacek at svn.parrot.org
Sun Sep 19 09:04:51 UTC 2010


Author: bacek
Date: Sun Sep 19 09:04:51 2010
New Revision: 49158
URL: https://trac.parrot.org/parrot/changeset/49158

Log:
Properly free allocated string memory.

Modified:
   branches/gc_massacre/src/gc/gc_ms2.c

Modified: branches/gc_massacre/src/gc/gc_ms2.c
==============================================================================
--- branches/gc_massacre/src/gc/gc_ms2.c	Sun Sep 19 08:58:13 2010	(r49157)
+++ branches/gc_massacre/src/gc/gc_ms2.c	Sun Sep 19 09:04:51 2010	(r49158)
@@ -802,7 +802,7 @@
         PObj_on_free_list_SET(s);
 
         if (Buffer_bufstart(s) && !PObj_external_TEST(s))
-            mem_sys_free(Buffer_bufstart(s));
+            Parrot_gc_str_free_buffer_storage(interp, &self->string_gc, (Buffer *)s);
 
         Parrot_gc_pool_free(interp, self->string_allocator, Obj2LLH(s));
 
@@ -917,10 +917,11 @@
 gc_ms2_sweep_string_cb(PARROT_INTERP, ARGIN(PObj *obj))
 {
     ASSERT_ARGS(gc_ms2_sweep_string_cb)
-    STRING *str = (STRING *)obj;
+    MarkSweep_GC *self = (MarkSweep_GC *)interp->gc_sys->gc_private;
+    STRING       *str  = (STRING *)obj;
     /* Compact string pool here. Or get rid of "shared buffers" and just free storage */
     if (Buffer_bufstart(str) && !PObj_external_TEST(str))
-        mem_sys_free(Buffer_bufstart(str));
+        Parrot_gc_str_free_buffer_storage(interp, &self->string_gc, str);
 }
 
 


More information about the parrot-commits mailing list