[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