diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-05-14 16:39:15 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-05-14 16:39:15 +0000 |
commit | 6a60393280046a4991da8a415a77c60c7be240b5 (patch) | |
tree | 489d3ac0bc9d172e33965204600726fd5d4dbbef /variable.c | |
parent | 35ae7c90450157e1d8d415be819da40c9c1289a6 (diff) | |
download | ruby-6a60393280046a4991da8a415a77c60c7be240b5.tar.gz |
* range.c (range_each_func): terminates loop if generating value
is same to @end. [ruby-talk:100269]
* string.c (rb_str_new4): should not reuse frozen shared string if
the original is not an instance of String. [ruby-talk:100193]
* time.c (time_mdump): preserve GMT bit in the marshal data.
[ruby-talk:100213]
* eval.c (is_defined): do not protect exception during receiver
evaluation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6313 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'variable.c')
-rw-r--r-- | variable.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/variable.c b/variable.c index 24cbf21c04..cb972ba81d 100644 --- a/variable.c +++ b/variable.c @@ -978,6 +978,7 @@ rb_copy_generic_ivar(clone, obj) st_table *tbl; if (!generic_iv_tbl) return; + if (!FL_TEST(obj, FL_EXIVAR)) return; if (st_lookup(generic_iv_tbl, obj, (st_data_t *)&tbl)) { st_table *old; @@ -987,6 +988,7 @@ rb_copy_generic_ivar(clone, obj) } else { st_add_direct(generic_iv_tbl, clone, (st_data_t)st_copy(tbl)); + FL_SET(clone, FL_EXIVAR); } } } |