From 576aaec6f9f291698771c37971466b8b58f9d7ef Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 25 Dec 2018 01:17:37 +0000 Subject: [PATCH] Mention rb_gc_register_mark_object [ci skip] [Feature #9894] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66534 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- doc/extension.ja.rdoc | 9 +++++++-- doc/extension.rdoc | 11 +++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/doc/extension.ja.rdoc b/doc/extension.ja.rdoc index 88f300a562..9311bd70f8 100644 --- a/doc/extension.ja.rdoc +++ b/doc/extension.ja.rdoc @@ -1325,8 +1325,13 @@ void rb_define_hooked_variable(const char *name, VALUE *var, VALUE (*getter)(), void rb_global_variable(VALUE *var) :: - GCのため,Rubyプログラムからはアクセスされないが, Rubyオブ - ジェクトを含む大域変数をマークする. + マークする必要のあるRubyオブジェクトを含む大域変数を,GC + によって開放されないように保護する. + +void rb_gc_register_mark_object(VALUE *var) :: + + マークする必要のあるRubyオブジェクトを,GCによって開放さ + れないように登録する. === 定数 diff --git a/doc/extension.rdoc b/doc/extension.rdoc index 691631ea17..b7cba0d5e8 100644 --- a/doc/extension.rdoc +++ b/doc/extension.rdoc @@ -895,6 +895,10 @@ but are not exported to the Ruby world. You need to protect them by void rb_global_variable(VALUE *var) +or the objects themselves by + + void rb_gc_register_mark_object(VALUE object) + === Prepare extconf.rb If the file named extconf.rb exists, it will be executed to generate @@ -1337,8 +1341,11 @@ void rb_define_hooked_variable(const char *name, VALUE *var, VALUE (*getter)(), void rb_global_variable(VALUE *var) :: - GC requires C global variables which hold Ruby values to be marked. - rb_global_variable tells GC to protect these variables. + Tells GC to protect C global variable, which holds Ruby value to be marked. + +void rb_gc_register_mark_object(VALUE object) :: + + Tells GC to protect the +object+, which may not be referenced anywhere. === Constant Definition