summaryrefslogtreecommitdiffstats
path: root/variable.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-05-14 16:39:15 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-05-14 16:39:15 +0000
commitef8ec126af4ab0fba0bff708e2aef1ed4867fc60 (patch)
tree489d3ac0bc9d172e33965204600726fd5d4dbbef /variable.c
parent15169a6f8f4126946b8cced042acde82fd2dc8c8 (diff)
downloadruby-ef8ec126af4ab0fba0bff708e2aef1ed4867fc60.tar.gz
ruby-ef8ec126af4ab0fba0bff708e2aef1ed4867fc60.tar.xz
ruby-ef8ec126af4ab0fba0bff708e2aef1ed4867fc60.zip
* 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: http://svn.ruby-lang.org/repos/ruby/trunk@6313 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'variable.c')
-rw-r--r--variable.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/variable.c b/variable.c
index 24cbf21c0..cb972ba81 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);
}
}
}