[svn:parrot] r44181 - branches/sys_mem_reduce/src/gc
bacek at svn.parrot.org
bacek at svn.parrot.org
Fri Feb 19 13:50:59 UTC 2010
Author: bacek
Date: Fri Feb 19 13:50:59 2010
New Revision: 44181
URL: https://trac.parrot.org/parrot/changeset/44181
Log:
Split allocation of zeroed/non-zeroed chunks in GC MS.
Modified:
branches/sys_mem_reduce/src/gc/gc_ms.c
Modified: branches/sys_mem_reduce/src/gc/gc_ms.c
==============================================================================
--- branches/sys_mem_reduce/src/gc/gc_ms.c Fri Feb 19 13:29:09 2010 (r44180)
+++ branches/sys_mem_reduce/src/gc/gc_ms.c Fri Feb 19 13:50:59 2010 (r44181)
@@ -59,6 +59,9 @@
static void * gc_ms_allocate_memory_chunk(PARROT_INTERP, size_t size)
__attribute__nonnull__(1);
+static void * gc_ms_allocate_memory_chunk_zeroed(PARROT_INTERP, size_t size)
+ __attribute__nonnull__(1);
+
PARROT_CAN_RETURN_NULL
static PMC* gc_ms_allocate_pmc_header(PARROT_INTERP, UINTVAL flags)
__attribute__nonnull__(1);
@@ -229,6 +232,9 @@
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_gc_ms_allocate_memory_chunk __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_gc_ms_allocate_memory_chunk_zeroed \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_gc_ms_allocate_pmc_header __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_gc_ms_allocate_string_header __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -378,7 +384,7 @@
interp->gc_sys->allocate_memory_chunk = gc_ms_allocate_memory_chunk;
interp->gc_sys->reallocate_memory_chunk = gc_ms_reallocate_memory_chunk;
interp->gc_sys->allocate_memory_chunk_with_interior_pointers
- = gc_ms_allocate_memory_chunk;
+ = gc_ms_allocate_memory_chunk_zeroed;
interp->gc_sys->reallocate_memory_chunk_with_interior_pointers
= gc_ms_reallocate_memory_chunk_zeroed;
interp->gc_sys->free_memory_chunk = gc_ms_free_memory_chunk;
@@ -761,7 +767,7 @@
PMC_data(pmc) = attrs;
return attrs;
#else
- void * const data = mem_sys_allocate_zeroed(attr_size);
+ void * const data = gc_ms_allocate_memory_chunk(attr_size);
PMC_data(pmc) = data;
return data;
#endif
@@ -1098,6 +1104,12 @@
=item C<static void * gc_ms_reallocate_memory_chunk(PARROT_INTERP, void *data,
size_t newsize)>
+=item C<static void * gc_ms_allocate_memory_chunk_zeroed(PARROT_INTERP, size_t
+size)>
+
+=item C<static void * gc_ms_reallocate_memory_chunk_zeroed(PARROT_INTERP, void
+*data, size_t newsize, size_t oldsize)>
+
=item C<static void gc_ms_free_memory_chunk(PARROT_INTERP, void *data)>
TODO Write docu.
@@ -1108,9 +1120,7 @@
gc_ms_allocate_memory_chunk(PARROT_INTERP, size_t size)
{
ASSERT_ARGS(gc_ms_allocate_memory_chunk)
- void * ret = mem_internal_allocate(size);
- memset(ret, 0, size);
- return ret;
+ return mem_internal_allocate(size);
}
static void *
@@ -1121,6 +1131,15 @@
}
static void *
+gc_ms_allocate_memory_chunk_zeroed(PARROT_INTERP, size_t size)
+{
+ ASSERT_ARGS(gc_ms_allocate_memory_chunk)
+ void * ret = mem_internal_allocate(size);
+ memset(ret, 0, size);
+ return ret;
+}
+
+static void *
gc_ms_reallocate_memory_chunk_zeroed(PARROT_INTERP, ARGIN(void *data),
size_t newsize, size_t oldsize)
{
More information about the parrot-commits
mailing list