[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]