diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-07-09 16:19:13 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-07-09 16:19:13 +0000 |
commit | 96815f1ebe945a802ca2e35a1bb6e3b564339732 (patch) | |
tree | 6ab8921694d8207b6758823f3a38157701cfb3c7 /internal.h | |
parent | 996ff90744d79b60ef40a03d16bc185e64d1b5af (diff) | |
download | ruby-96815f1ebe945a802ca2e35a1bb6e3b564339732.tar.gz |
* symbol.c: remove rb_gc_mark_symbols().
fstrings refered by static symbols and pinned dynamic symbols
are registerd by rb_gc_register_mark_object().
frstring refered by dynamic symbols (not pinned symbols)
are refered from global_symbols.dsymbol_fstr_hash (Hash object).
Note that fstrings refered from dynamic symbols must live loger
than symbol objects themselves because rb_gc_free_dsymbol() uses
fstring to remove from symbol tables.
This is why we can not mark fstrings from dynamic symbols.
This technique reduces root objects for GC marking.
* gc.c (gc_mark_roots): ditto.
* internal.h: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46772 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'internal.h')
-rw-r--r-- | internal.h | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/internal.h b/internal.h index e3ab0dec8b..c91670a388 100644 --- a/internal.h +++ b/internal.h @@ -805,7 +805,6 @@ int rb_is_attrset_name(VALUE name); int rb_is_local_name(VALUE name); int rb_is_method_name(VALUE name); int rb_is_junk_name(VALUE name); -void rb_gc_mark_symbols(int full_mark); ID rb_make_internal_id(void); void rb_gc_free_dsymbol(VALUE); VALUE rb_str_dynamic_intern(VALUE); |