[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