diff options
Diffstat (limited to 'gc.c')
-rw-r--r-- | gc.c | 186 |
1 files changed, 64 insertions, 122 deletions
@@ -89,12 +89,12 @@ void *alloca (); static unsigned long malloc_increase = 0; static unsigned long malloc_limit = GC_MALLOC_LIMIT; -static void run_final(); +static void run_final(VALUE obj); static VALUE nomem_error; -static void garbage_collect(); +static void garbage_collect(void); void -rb_memerror() +rb_memerror(void) { static int recurse = 0; @@ -107,8 +107,7 @@ rb_memerror() } void * -ruby_xmalloc(size) - long size; +ruby_xmalloc(long size) { void *mem; @@ -134,8 +133,7 @@ ruby_xmalloc(size) } void * -ruby_xcalloc(n, size) - long n, size; +ruby_xcalloc(long n, long size) { void *mem; @@ -146,9 +144,7 @@ ruby_xcalloc(n, size) } void * -ruby_xrealloc(ptr, size) - void *ptr; - long size; +ruby_xrealloc(void *ptr, long size) { void *mem; @@ -171,8 +167,7 @@ ruby_xrealloc(ptr, size) } void -ruby_xfree(x) - void *x; +ruby_xfree(void *x) { if (x) RUBY_CRITICAL(free(x)); @@ -198,7 +193,7 @@ static st_table *finalizer_table = 0; */ VALUE -rb_gc_enable() +rb_gc_enable(void) { int old = dont_gc; @@ -219,7 +214,7 @@ rb_gc_enable() */ VALUE -rb_gc_disable() +rb_gc_disable(void) { int old = dont_gc; @@ -235,8 +230,7 @@ static struct gc_list { } *global_List = 0; void -rb_gc_register_address(addr) - VALUE *addr; +rb_gc_register_address(VALUE *addr) { struct gc_list *tmp; @@ -247,8 +241,7 @@ rb_gc_register_address(addr) } void -rb_gc_unregister_address(addr) - VALUE *addr; +rb_gc_unregister_address(VALUE *addr) { struct gc_list *tmp = global_List; @@ -272,8 +265,7 @@ rb_gc_unregister_address(addr) #undef GC_DEBUG void -rb_global_variable(var) - VALUE *var; +rb_global_variable(VALUE *var) { rb_gc_register_address(var); } @@ -326,7 +318,7 @@ static int heap_slots = HEAP_MIN_SLOTS; static RVALUE *himem, *lomem; static void -add_heap() +add_heap(void) { RVALUE *p, *pend; @@ -376,7 +368,7 @@ add_heap() #define RANY(o) ((RVALUE*)(o)) VALUE -rb_newobj() +rb_newobj(void) { VALUE obj; @@ -393,11 +385,7 @@ rb_newobj() } VALUE -rb_data_object_alloc(klass, datap, dmark, dfree) - VALUE klass; - void *datap; - RUBY_DATA_FUNC dmark; - RUBY_DATA_FUNC dfree; +rb_data_object_alloc(VALUE klass, void *datap, RUBY_DATA_FUNC dmark, RUBY_DATA_FUNC dfree) { NEWOBJ(data, struct RData); if (klass) Check_Type(klass, T_CLASS); @@ -477,8 +465,7 @@ stack_grow_direction(addr) } while (0) int -ruby_stack_length(p) - VALUE **p; +ruby_stack_length(VALUE **p) { SET_STACK_END; if (p) *p = STACK_UPPER(STACK_END, rb_gc_stack_start, STACK_END); @@ -486,7 +473,7 @@ ruby_stack_length(p) } int -ruby_stack_check() +ruby_stack_check(void) { int ret; @@ -500,7 +487,7 @@ static VALUE *mark_stack_ptr; static int mark_stack_overflow; static void -init_mark_stack() +init_mark_stack(void) { mark_stack_overflow = 0; mark_stack_ptr = mark_stack; @@ -511,8 +498,7 @@ init_mark_stack() static st_table *source_filenames; char * -rb_source_filename(f) - const char *f; +rb_source_filename(const char *f) { char *name; @@ -528,8 +514,7 @@ rb_source_filename(f) } static void -mark_source_filename(f) - char *f; +mark_source_filename(char *f) { if (f) { f[-1] = 1; @@ -537,8 +522,7 @@ mark_source_filename(f) } static int -sweep_source_filename(key, value) - char *key, *value; +sweep_source_filename(char *key, char *value) { if (*value) { *value = 0; @@ -554,7 +538,7 @@ static void gc_mark _((VALUE ptr, int lev)); static void gc_mark_children _((VALUE ptr, int lev)); static void -gc_mark_all() +gc_mark_all(void) { RVALUE *p, *pend; int i; @@ -573,7 +557,7 @@ gc_mark_all() } static void -gc_mark_rest() +gc_mark_rest(void) { VALUE tmp_arry[MARK_STACK_MAX]; VALUE *p; @@ -589,8 +573,7 @@ gc_mark_rest() } static inline int -is_pointer_to_heap(ptr) - void *ptr; +is_pointer_to_heap(void *ptr) { register RVALUE *p = RANY(ptr); register RVALUE *heap_org; @@ -609,9 +592,7 @@ is_pointer_to_heap(ptr) } static void -mark_locations_array(x, n) - register VALUE *x; - register long n; +mark_locations_array(register VALUE *x, register long n) { VALUE v; while (n--) { @@ -624,8 +605,7 @@ mark_locations_array(x, n) } void -rb_gc_mark_locations(start, end) - VALUE *start, *end; +rb_gc_mark_locations(VALUE *start, VALUE *end) { long n; @@ -634,36 +614,27 @@ rb_gc_mark_locations(start, end) } static int -mark_entry(key, value, lev) - ID key; - VALUE value; - int lev; +mark_entry(ID key, VALUE value, int lev) { gc_mark(value, lev); return ST_CONTINUE; } void -mark_tbl(tbl, lev) - st_table *tbl; - int lev; +mark_tbl(st_table *tbl, int lev) { if (!tbl) return; st_foreach(tbl, mark_entry, lev); } void -rb_mark_tbl(tbl) - st_table *tbl; +rb_mark_tbl(st_table *tbl) { mark_tbl(tbl, 0); } static int -mark_keyvalue(key, value, lev) - VALUE key; - VALUE value; - int lev; +mark_keyvalue(VALUE key, VALUE value, int lev) { gc_mark(key, lev); gc_mark(value, lev); @@ -671,24 +642,20 @@ mark_keyvalue(key, value, lev) } void -mark_hash(tbl, lev) - st_table *tbl; - int lev; +mark_hash(st_table *tbl, int lev) { if (!tbl) return; st_foreach(tbl, mark_keyvalue, lev); } void -rb_mark_hash(tbl) - st_table *tbl; +rb_mark_hash(st_table *tbl) { mark_hash(tbl, 0); } void -rb_gc_mark_maybe(obj) - VALUE obj; +rb_gc_mark_maybe(VALUE obj) { if (is_pointer_to_heap((void *)obj)) { gc_mark(obj, 0); @@ -698,9 +665,7 @@ rb_gc_mark_maybe(obj) #define GC_LEVEL_MAX 250 static void -gc_mark(ptr, lev) - VALUE ptr; - int lev; +gc_mark(VALUE ptr, int lev) { register RVALUE *obj; @@ -726,16 +691,13 @@ gc_mark(ptr, lev) } void -rb_gc_mark(ptr) - VALUE ptr; +rb_gc_mark(VALUE ptr) { gc_mark(ptr, 0); } static void -gc_mark_children(ptr, lev) - VALUE ptr; - int lev; +gc_mark_children(VALUE ptr, int lev) { register RVALUE *obj = RANY(ptr); @@ -993,8 +955,7 @@ gc_mark_children(ptr, lev) static void obj_free _((VALUE)); static void -finalize_list(p) - RVALUE *p; +finalize_list(RVALUE *p) { while (p) { RVALUE *tmp = p->as.free.next; @@ -1009,7 +970,7 @@ finalize_list(p) } static void -free_unused_heaps() +free_unused_heaps(void) { int i, j; @@ -1028,7 +989,7 @@ free_unused_heaps() } static void -gc_sweep() +gc_sweep(void) { RVALUE *p, *pend, *final_list; int freed = 0; @@ -1106,8 +1067,7 @@ gc_sweep() } void -rb_gc_force_recycle(p) - VALUE p; +rb_gc_force_recycle(VALUE p) { RANY(p)->as.free.flags = 0; RANY(p)->as.free.next = freelist; @@ -1115,8 +1075,7 @@ rb_gc_force_recycle(p) } static void -obj_free(obj) - VALUE obj; +obj_free(VALUE obj) { switch (RANY(obj)->as.basic.flags & T_MASK) { case T_NIL: @@ -1242,8 +1201,7 @@ obj_free(obj) } void -rb_gc_mark_frame(frame) - struct FRAME *frame; +rb_gc_mark_frame(struct FRAME *frame) { gc_mark((VALUE)frame->node, 0); } @@ -1287,7 +1245,7 @@ int rb_setjmp (rb_jmp_buf); #endif /* __GNUC__ */ static void -garbage_collect() +garbage_collect(void) { struct gc_list *list; struct FRAME * volatile frame; /* gcc 2.7.2.3 -O2 bug?? */ @@ -1400,7 +1358,7 @@ garbage_collect() } void -rb_gc() +rb_gc(void) { garbage_collect(); rb_gc_finalize_deferred(); @@ -1417,15 +1375,14 @@ rb_gc() */ VALUE -rb_gc_start() +rb_gc_start(void) { rb_gc(); return Qnil; } void -ruby_set_stack_size(size) - size_t size; +ruby_set_stack_size(size_t size) { #ifndef STACK_LEVEL_MAX STACK_LEVEL_MAX = size/sizeof(VALUE); @@ -1433,8 +1390,7 @@ ruby_set_stack_size(size) } void -Init_stack(addr) - VALUE *addr; +Init_stack(VALUE *addr) { #if defined(_WIN32) || defined(__CYGWIN__) MEMORY_BASIC_INFORMATION m; @@ -1505,7 +1461,7 @@ Init_stack(addr) */ void -Init_heap() +Init_heap(void) { if (!rb_gc_stack_start) { Init_stack(0); @@ -1514,7 +1470,7 @@ Init_heap() } static VALUE -os_live_obj() +os_live_obj(void) { int i; int n = 0; @@ -1546,8 +1502,7 @@ os_live_obj() } static VALUE -os_obj_of(of) - VALUE of; +os_obj_of(VALUE of) { int i; int n = 0; @@ -1614,9 +1569,7 @@ os_obj_of(of) */ static VALUE -os_each_obj(argc, argv) - int argc; - VALUE *argv; +os_each_obj(int argc, VALUE *argv) { VALUE of; @@ -1635,8 +1588,7 @@ static VALUE finalizers; */ static VALUE -add_final(os, block) - VALUE os, block; +add_final(VALUE os, VALUE block) { rb_warn("ObjectSpace::add_finalizer is deprecated; use define_finalizer"); if (!rb_respond_to(block, rb_intern("call"))) { @@ -1651,8 +1603,7 @@ add_final(os, block) * deprecated */ static VALUE -rm_final(os, block) - VALUE os, block; +rm_final(VALUE os, VALUE block) { rb_warn("ObjectSpace::remove_finalizer is deprecated; use undefine_finalizer"); rb_ary_delete(finalizers, block); @@ -1663,7 +1614,7 @@ rm_final(os, block) * deprecated */ static VALUE -finals() +finals(void) { rb_warn("ObjectSpace::finalizers is deprecated"); return finalizers; @@ -1674,8 +1625,7 @@ finals() */ static VALUE -call_final(os, obj) - VALUE os, obj; +call_final(VALUE os, VALUE obj) { rb_warn("ObjectSpace::call_finalizer is deprecated; use define_finalizer"); need_call_final = 1; @@ -1692,8 +1642,7 @@ call_final(os, obj) */ static VALUE -undefine_final(os, obj) - VALUE os, obj; +undefine_final(VALUE os, VALUE obj) { if (finalizer_table) { st_delete(finalizer_table, (st_data_t*)&obj, 0); @@ -1711,10 +1660,7 @@ undefine_final(os, obj) */ static VALUE -define_final(argc, argv, os) - int argc; - VALUE *argv; - VALUE os; +define_final(int argc, VALUE *argv, VALUE os) { VALUE obj, block, table; @@ -1744,8 +1690,7 @@ define_final(argc, argv, os) } void -rb_gc_copy_finalizer(dest, obj) - VALUE dest, obj; +rb_gc_copy_finalizer(VALUE dest, VALUE obj) { VALUE table; @@ -1758,16 +1703,14 @@ rb_gc_copy_finalizer(dest, obj) } static VALUE -run_single_final(args) - VALUE *args; +run_single_final(VALUE *args) { rb_eval_cmd(args[0], args[1], (int)args[2]); return Qnil; } static void -run_final(obj) - VALUE obj; +run_final(VALUE obj) { long i; int status, critical_save = rb_thread_critical; @@ -1795,7 +1738,7 @@ run_final(obj) } void -rb_gc_finalize_deferred() +rb_gc_finalize_deferred(void) { RVALUE *p = deferred_final_list; @@ -1807,7 +1750,7 @@ rb_gc_finalize_deferred() } void -rb_gc_call_finalizer_at_exit() +rb_gc_call_finalizer_at_exit(void) { RVALUE *p, *pend; int i; @@ -1868,8 +1811,7 @@ rb_gc_call_finalizer_at_exit() */ static VALUE -id2ref(obj, id) - VALUE obj, id; +id2ref(VALUE obj, VALUE id) { #if SIZEOF_LONG == SIZEOF_VOIDP #define NUM2PTR(x) NUM2ULONG(x) @@ -1908,7 +1850,7 @@ id2ref(obj, id) */ void -Init_GC() +Init_GC(void) { VALUE rb_mObSpace; |