aboutsummaryrefslogtreecommitdiffstats
path: root/gc.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-10-21 13:02:19 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-10-21 13:02:19 +0000
commitcb2a69d883469d8929892facb6c48059bdfac3dd (patch)
tree32f5d3536a2bc52f04ad9daa500963f9f490f19f /gc.c
parentfd807aa2ea743a8bc95f08fa8eb7fd137f21f14a (diff)
downloadruby-cb2a69d883469d8929892facb6c48059bdfac3dd.tar.gz
* gc.c (initial_params): pack in a struct.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c23
1 files changed, 19 insertions, 4 deletions
diff --git a/gc.c b/gc.c
index 8862484b54..490dd30cdf 100644
--- a/gc.c
+++ b/gc.c
@@ -80,11 +80,23 @@ void *alloca ();
#define HEAP_MIN_SLOTS 10000
#define FREE_MIN 4096
-static unsigned int initial_malloc_limit = GC_MALLOC_LIMIT;
+typedef struct {
+ unsigned int initial_malloc_limit;
+ unsigned int initial_heap_min_slots;
+ unsigned int initial_free_min;
#if defined(ENABLE_VM_OBJSPACE) && ENABLE_VM_OBJSPACE
-static unsigned int initial_heap_min_slots = HEAP_MIN_SLOTS;
+ int gc_stress;
#endif
-static unsigned int initial_free_min = FREE_MIN;
+} ruby_gc_params_t;
+
+ruby_gc_params_t initial_params = {
+ GC_MALLOC_LIMIT,
+ HEAP_MIN_SLOTS,
+ FREE_MIN,
+#if defined(ENABLE_VM_OBJSPACE) && ENABLE_VM_OBJSPACE
+ FALSE,
+#endif
+};
#define nomem_error GET_VM()->special_exceptions[ruby_error_nomemory]
@@ -370,7 +382,7 @@ typedef struct rb_objspace {
#if defined(ENABLE_VM_OBJSPACE) && ENABLE_VM_OBJSPACE
#define rb_objspace (*GET_VM()->objspace)
-static int ruby_initial_gc_stress = 0;
+#define ruby_initial_gc_stress initial_params.gc_stress
int *ruby_initial_gc_stress_ptr = &ruby_initial_gc_stress;
#else
static rb_objspace_t rb_objspace = {{GC_MALLOC_LIMIT}, {HEAP_MIN_SLOTS}};
@@ -396,6 +408,9 @@ int *ruby_initial_gc_stress_ptr = &rb_objspace.gc_stress;
#define mark_stack_overflow objspace->markstack.overflow
#define global_List objspace->global_list
#define ruby_gc_stress objspace->gc_stress
+#define initial_malloc_limit initial_params.initial_malloc_limit
+#define initial_heap_min_slots initial_params.initial_heap_min_slots
+#define initial_free_min initial_params.initial_free_min
#define is_lazy_sweeping(objspace) ((objspace)->heap.sweep_slots != 0)