[svn:parrot] r48927 - trunk/src/gc

chromatic at svn.parrot.org chromatic at svn.parrot.org
Sat Sep 11 06:28:04 UTC 2010


Author: chromatic
Date: Sat Sep 11 06:28:04 2010
New Revision: 48927
URL: https://trac.parrot.org/parrot/changeset/48927

Log:
[GC] Fixed unoptimized builds in stack tracing.

The STRING marking function has an assert for STRINGness that Buffers which get
marked don't need.  This whole system is a mess of false and foolish premature
isomorphism, but we can live with this for now (unless someone beats me to
cleaning up this approach before we replace this part of the GC).

Modified:
   trunk/src/gc/system.c

Modified: trunk/src/gc/system.c
==============================================================================
--- trunk/src/gc/system.c	Sat Sep 11 05:49:57 2010	(r48926)
+++ trunk/src/gc/system.c	Sat Sep 11 06:28:04 2010	(r48927)
@@ -470,7 +470,10 @@
             }
             else if ((buffer_min <= ptr) && (ptr < buffer_max)
             &&        is_buffer_ptr(mem_pools, (void *)ptr)) {
-                Parrot_gc_mark_STRING_alive(interp, (STRING *)ptr);
+                if (PObj_is_string_TEST((PObj *)ptr))
+                    Parrot_gc_mark_STRING_alive(interp, (STRING *)ptr);
+                else
+                    PObj_live_SET((PObj *)ptr);
             }
         }
     }


More information about the parrot-commits mailing list