[svn:parrot] r43360 - branches/boehm_gc/src/call
bacek at svn.parrot.org
bacek at svn.parrot.org
Fri Jan 1 21:03:32 UTC 2010
Author: bacek
Date: Fri Jan 1 21:03:31 2010
New Revision: 43360
URL: https://trac.parrot.org/parrot/changeset/43360
Log:
Don't use FixedSizeAllocator for CallContext's registers if GC_USE_FIXED_SIZE_ALLOCATOR isn't set.
Modified:
branches/boehm_gc/src/call/context.c
Modified: branches/boehm_gc/src/call/context.c
==============================================================================
--- branches/boehm_gc/src/call/context.c Fri Jan 1 20:31:11 2010 (r43359)
+++ branches/boehm_gc/src/call/context.c Fri Jan 1 21:03:31 2010 (r43360)
@@ -475,9 +475,14 @@
const size_t reg_alloc = ROUND_ALLOC_SIZE(all_regs_size);
/* don't allocate any storage if there are no registers */
- ctx->registers = reg_alloc
- ? (Parrot_Context *)Parrot_gc_allocate_fixed_size_storage(interp, reg_alloc)
- : NULL;
+ if (reg_alloc)
+#if GC_USE_FIXED_SIZE_ALLOCATOR
+ ctx->registers = (Parrot_Context *)Parrot_gc_allocate_fixed_size_storage(interp, reg_alloc);
+#else
+ ctx->registers = (Parrot_Context *)mem_sys_allocate_zeroed(reg_alloc);
+#endif
+ else
+ ctx->registers = NULL;
ctx->n_regs_used[REGNO_INT] = number_regs_used[REGNO_INT];
ctx->n_regs_used[REGNO_NUM] = number_regs_used[REGNO_NUM];
@@ -539,8 +544,11 @@
return;
/* Free registers */
+#if GC_USE_FIXED_SIZE_ALLOCATOR
Parrot_gc_free_fixed_size_storage(interp, reg_size, ctx->registers);
-
+#else
+ mem_sys_free(ctx->registers);
+#endif
}
More information about the parrot-commits
mailing list