diff options
author | nahi <nahi@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-08-31 08:35:27 +0000 |
---|---|---|
committer | nahi <nahi@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-08-31 08:35:27 +0000 |
commit | 0d475da8056ec4731872a5290cdabe94b53d4f64 (patch) | |
tree | 37fa8e83ddbbcc45390d5d751568ac6a67b8a9f6 /gc.c | |
parent | cfe8ed5cbc763a3abcfc19ce10619836aeff7682 (diff) | |
download | ruby-0d475da8056ec4731872a5290cdabe94b53d4f64.tar.gz |
* variable.c (rb_autoload): There was a chance to run GC (from
rb_str_new2()) before finishing autoload_data_i construction. It
caused SEGV at rb_gc_mark() at autoload_i_mark.
* variable.c (rb_autoload_load): Move RB_GC_GUARD() to proper
position based on suggestion by CHIKANAGA Tomoyuki at
http://d.hatena.ne.jp/nagachika/20110826/ruby_trunk_changes_33070_33078
* variable.c (autoload_defined_p): Fix incompatible autoload behavior
that causes Rails crash. Class deifnition instruction defined in
'defineclass' in insns.def always invokes rb_autoload_load for a
constant. It's invoked for every class definition regardless of
existence of autoload definition. rb_autoload_load checkes if a
constant is defined as autoloaded, but new thread-safe autoload
returned different value if the constant is under autoloading.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33147 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
0 files changed, 0 insertions, 0 deletions