ruby-changes:7844
From: ko1 <ko1@a...>
Date: Tue, 16 Sep 2008 00:02:39 +0900 (JST)
Subject: [ruby-changes:7844] Ruby:r19365 (trunk): * gc.c, include/ruby/ruby.h: rename rb_register_mark_object()
ko1 2008-09-15 23:59:14 +0900 (Mon, 15 Sep 2008) New Revision: 19365 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=19365 Log: * gc.c, include/ruby/ruby.h: rename rb_register_mark_object() to rb_gc_register_mark_object(). * eval.c, vm.c: initialize vm->mark_object_ary at Init_top_self(). * bignum.c, complex.c, encoding.c, ext/win32ole/win32ole.c, io.c, load.c, marshal.c, rational.c, ruby.c, vm.c: use rb_gc_register_mark_object() instead of rb_global_variable() or rb_gc_register_address(). Modified files: trunk/ChangeLog trunk/bignum.c trunk/complex.c trunk/encoding.c trunk/eval.c trunk/ext/win32ole/win32ole.c trunk/gc.c trunk/include/ruby/ruby.h trunk/io.c trunk/load.c trunk/marshal.c trunk/rational.c trunk/ruby.c trunk/vm.c Index: complex.c =================================================================== --- complex.c (revision 19364) +++ complex.c (revision 19365) @@ -1056,29 +1056,29 @@ if (comp_pat0) return; comp_pat0 = rb_reg_new(comp_pat0_source, sizeof comp_pat0_source - 1, 0); - rb_global_variable(&comp_pat0); + rb_gc_register_mark_object(comp_pat0); comp_pat1 = rb_reg_new(comp_pat1_source, sizeof comp_pat1_source - 1, 0); - rb_global_variable(&comp_pat1); + rb_gc_register_mark_object(comp_pat1); comp_pat2 = rb_reg_new(comp_pat2_source, sizeof comp_pat2_source - 1, 0); - rb_global_variable(&comp_pat2); + rb_gc_register_mark_object(comp_pat2); a_slash = rb_str_new2("/"); - rb_global_variable(&a_slash); + rb_gc_register_mark_object(a_slash); a_dot_and_an_e = rb_str_new2(".eE"); - rb_global_variable(&a_dot_and_an_e); + rb_gc_register_mark_object(a_dot_and_an_e); null_string = rb_str_new2(""); - rb_global_variable(&null_string); + rb_gc_register_mark_object(null_string); underscores_pat = rb_reg_new(underscores_pat_source, sizeof underscores_pat_source - 1, 0); - rb_global_variable(&underscores_pat); + rb_gc_register_mark_object(underscores_pat); an_underscore = rb_str_new2("_"); - rb_global_variable(&an_underscore); + rb_gc_register_mark_object(an_underscore); } #define id_match rb_intern("match") Index: encoding.c =================================================================== --- encoding.c (revision 19364) +++ encoding.c (revision 19365) @@ -1225,10 +1225,11 @@ rb_define_singleton_method(rb_cEncoding, "default_external", get_default_external, 0); rb_define_singleton_method(rb_cEncoding, "locale_charmap", rb_locale_charmap, 0); - rb_gc_register_address(&rb_encoding_list); list = rb_ary_new2(enc_table.count); RBASIC(list)->klass = 0; rb_encoding_list = list; + rb_gc_register_mark_object(list); + for (i = 0; i < enc_table.count; ++i) { rb_ary_push(list, enc_new(enc_table.list[i].enc)); } Index: include/ruby/ruby.h =================================================================== --- include/ruby/ruby.h (revision 19364) +++ include/ruby/ruby.h (revision 19365) @@ -851,7 +851,7 @@ void rb_define_attr(VALUE,const char*,int,int); void rb_global_variable(VALUE*); -void rb_register_mark_object(VALUE); +void rb_gc_register_mark_object(VALUE); void rb_gc_register_address(VALUE*); void rb_gc_unregister_address(VALUE*); Index: ChangeLog =================================================================== --- ChangeLog (revision 19364) +++ ChangeLog (revision 19365) @@ -1,3 +1,16 @@ +Mon Sep 15 23:52:45 2008 Koichi Sasada <ko1@a...> + + * gc.c, include/ruby/ruby.h: rename rb_register_mark_object() + to rb_gc_register_mark_object(). + + * eval.c, vm.c: initialize vm->mark_object_ary at + Init_top_self(). + + * bignum.c, complex.c, encoding.c, ext/win32ole/win32ole.c, + io.c, load.c, marshal.c, rational.c, ruby.c, vm.c: + use rb_gc_register_mark_object() instead of + rb_global_variable() or rb_gc_register_address(). + Mon Sep 15 23:37:15 2008 Tanaka Akira <akr@f...> * transcode.c (econv_opts): don't use to_sym. Index: io.c =================================================================== --- io.c (revision 19364) +++ io.c (revision 19365) @@ -8180,8 +8180,8 @@ rb_output_fs = Qnil; rb_define_hooked_variable("$,", &rb_output_fs, 0, rb_str_setter); - rb_global_variable(&rb_default_rs); rb_rs = rb_default_rs = rb_str_new2("\n"); + rb_gc_register_mark_object(rb_default_rs); rb_output_rs = Qnil; OBJ_FREEZE(rb_default_rs); /* avoid modifying RS_default */ rb_define_hooked_variable("$/", &rb_rs, 0, rb_str_setter); Index: load.c =================================================================== --- load.c (revision 19364) +++ load.c (revision 19365) @@ -698,5 +698,5 @@ rb_define_global_function("autoload?", rb_f_autoload_p, 1); ruby_dln_librefs = rb_ary_new(); - rb_register_mark_object(ruby_dln_librefs); + rb_gc_register_mark_object(ruby_dln_librefs); } Index: eval.c =================================================================== --- eval.c (revision 19364) +++ eval.c (revision 19365) @@ -1129,9 +1129,6 @@ void Init_eval(void) { - /* TODO: fix position */ - GET_THREAD()->vm->mark_object_ary = rb_ary_new(); - rb_define_virtual_variable("$@", errat_getter, errat_setter); rb_define_virtual_variable("$!", errinfo_getter, 0); Index: gc.c =================================================================== --- gc.c (revision 19364) +++ gc.c (revision 19365) @@ -722,7 +722,7 @@ VALUE rb_mGC; void -rb_register_mark_object(VALUE obj) +rb_gc_register_mark_object(VALUE obj) { VALUE ary = GET_THREAD()->vm->mark_object_ary; rb_ary_push(ary, obj); Index: ext/win32ole/win32ole.c =================================================================== --- ext/win32ole/win32ole.c (revision 19364) +++ ext/win32ole/win32ole.c (revision 19365) @@ -8797,7 +8797,7 @@ Init_win32ole() { ary_ole_event = rb_ary_new(); - rb_register_mark_object(ary_ole_event); + rb_gc_register_mark_object(ary_ole_event); id_events = rb_intern("events"); com_vtbl.QueryInterface = QueryInterface; @@ -8816,7 +8816,7 @@ message_filter.MessagePending = mf_MessagePending; com_hash = Data_Wrap_Struct(rb_cData, rb_mark_hash, st_free_table, st_init_numtable()); - rb_register_mark_object(com_hash); + rb_gc_register_mark_object(com_hash); cWIN32OLE = rb_define_class("WIN32OLE", rb_cObject); Index: vm.c =================================================================== --- vm.c (revision 19364) +++ vm.c (revision 19365) @@ -1820,7 +1820,7 @@ rb_define_method_id(klass, id_core_define_singleton_method, m_core_define_singleton_method, 3); rb_define_method_id(klass, id_core_set_postexe, m_core_set_postexe, 1); rb_obj_freeze(fcore); - rb_global_variable(&rb_mRubyVMFrozenCore); + rb_gc_register_mark_object(fcore); rb_mRubyVMFrozenCore = fcore; /* ::VM::Env */ @@ -1901,7 +1901,7 @@ vm->living_threads = st_init_numtable(); st_insert(vm->living_threads, th_self, (st_data_t) th->thread_id); - rb_register_mark_object(iseqval); + rb_gc_register_mark_object(iseqval); GetISeqPtr(iseqval, iseq); th->cfp->iseq = iseq; th->cfp->pc = iseq->iseq_encoded; @@ -1960,6 +1960,9 @@ vm->top_self = rb_obj_alloc(rb_cObject); rb_define_singleton_method(rb_vm_top_self(), "to_s", main_to_s, 0); + + /* initialize mark object array */ + vm->mark_object_ary = rb_ary_new(); } VALUE * Index: ruby.c =================================================================== --- ruby.c (revision 19364) +++ ruby.c (revision 19365) @@ -1478,7 +1478,6 @@ rb_define_hooked_variable("$PROGRAM_NAME", &rb_progname, 0, set_arg0); rb_define_global_const("ARGV", rb_argv); - rb_global_variable(&rb_argv0); #ifdef MSDOS /* @@ -1535,6 +1534,7 @@ ruby_script(argv[0]); /* for the time being */ rb_argv0 = rb_str_new4(rb_progname); + rb_gc_register_mark_object(rb_argv0); args.argc = argc; args.argv = argv; args.opt = cmdline_options_init(&opt); Index: bignum.c =================================================================== --- bignum.c (revision 19364) +++ bignum.c (revision 19365) @@ -774,7 +774,7 @@ big2str_power_cache[base - 2][i] = i == 0 ? rb_big_pow(rb_int2big(base), INT2FIX(KARATSUBA_DIGITS)) : bigsqr(power_cache_get_power0(base, i - 1)); - rb_global_variable(&big2str_power_cache[base - 2][i]); + rb_gc_register_mark_object(big2str_power_cache[base - 2][i]); } return big2str_power_cache[base - 2][i]; } Index: marshal.c =================================================================== --- marshal.c (revision 19364) +++ marshal.c (revision 19365) @@ -1723,9 +1723,9 @@ rb_define_const(rb_mMarshal, "MINOR_VERSION", INT2FIX(MARSHAL_MINOR)); compat_allocator_tbl = st_init_numtable(); - rb_gc_register_address(&compat_allocator_tbl_wrapper); compat_allocator_tbl_wrapper = Data_Wrap_Struct(rb_cData, mark_marshal_compat_t, 0, compat_allocator_tbl); + rb_gc_register_mark_object(compat_allocator_tbl_wrapper); } VALUE Index: rational.c =================================================================== --- rational.c (revision 19364) +++ rational.c (revision 19365) @@ -1252,20 +1252,20 @@ if (rat_pat) return; rat_pat = rb_reg_new(rat_pat_source, sizeof rat_pat_source - 1, 0); - rb_global_variable(&rat_pat); + rb_gc_register_mark_object(rat_pat); an_e_pat = rb_reg_new(an_e_pat_source, sizeof an_e_pat_source - 1, 0); - rb_global_variable(&an_e_pat); + rb_gc_register_mark_object(an_e_pat); a_dot_pat = rb_reg_new(a_dot_pat_source, sizeof a_dot_pat_source - 1, 0); - rb_global_variable(&a_dot_pat); + rb_gc_register_mark_object(a_dot_pat); underscores_pat = rb_reg_new(underscores_pat_source, sizeof underscores_pat_source - 1, 0); - rb_global_variable(&underscores_pat); + rb_gc_register_mark_object(underscores_pat); an_underscore = rb_str_new2("_"); - rb_global_variable(&an_underscore); + rb_gc_register_mark_object(an_underscore); } #define id_match rb_intern("match") -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/