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

bacek at svn.parrot.org bacek at svn.parrot.org
Sun May 30 14:56:22 UTC 2010


Author: bacek
Date: Sun May 30 14:56:22 2010
New Revision: 47158
URL: https://trac.parrot.org/parrot/changeset/47158

Log:
Expose GC.is_pmc_ptr

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

Modified: branches/gc_massacre/src/gc/gc_ms.c
==============================================================================
--- branches/gc_massacre/src/gc/gc_ms.c	Sun May 30 14:55:49 2010	(r47157)
+++ branches/gc_massacre/src/gc/gc_ms.c	Sun May 30 14:56:22 2010	(r47158)
@@ -151,6 +151,9 @@
 static unsigned int gc_ms_is_blocked_GC_sweep(PARROT_INTERP)
         __attribute__nonnull__(1);
 
+static int gc_ms_is_pmc_ptr(PARROT_INTERP, void *ptr)
+        __attribute__nonnull__(1);
+
 static void gc_ms_mark_and_sweep(PARROT_INTERP, UINTVAL flags)
         __attribute__nonnull__(1);
 
@@ -316,6 +319,8 @@
        PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_gc_ms_is_blocked_GC_sweep __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_gc_ms_is_pmc_ptr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_gc_ms_mark_and_sweep __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_gc_ms_mark_pobj_header __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -416,6 +421,7 @@
     interp->gc_sys->allocate_bufferlike_header  = gc_ms_allocate_bufferlike_header;
     interp->gc_sys->free_bufferlike_header      = gc_ms_free_bufferlike_header;
 
+    interp->gc_sys->is_pmc_ptr              = gc_ms_is_pmc_ptr;
     interp->gc_sys->mark_pmc_header         = gc_ms_mark_pmc_header;
     interp->gc_sys->mark_pobj_header        = gc_ms_mark_pobj_header;
 
@@ -730,6 +736,13 @@
     }
 }
 
+static int
+gc_ms_is_pmc_ptr(PARROT_INTERP, ARGIN_NULLOK(void *ptr))
+{
+    ASSERT_ARGS(gc_ms_is_pmc_ptr)
+    return contained_in_pool(interp->mem_pools->pmc_pool, ptr);
+}
+
 /*
 
 =item C<static STRING* gc_ms_allocate_string_header(PARROT_INTERP, UINTVAL


More information about the parrot-commits mailing list