diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-05-22 07:01:53 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-05-22 07:01:53 +0000 |
commit | db3bdf6eca24d6f78fbf29c8c22751aca5316c29 (patch) | |
tree | 33e8e741484056f3c1492fc0c8b0619657772645 | |
parent | 3495cd6307e4712fb88fcb9d3570048565e0a4ac (diff) |
* eval.c (umethod_bind): should not update original class.
[ruby-dev:28636]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10171 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | eval.c | 5 |
2 files changed, 7 insertions, 3 deletions
@@ -1,3 +1,8 @@ +Mon May 22 15:57:39 2006 Yukihiro Matsumoto <matz@ruby-lang.org> + + * eval.c (umethod_bind): should not update original class. + [ruby-dev:28636] + Mon May 22 13:38:57 2006 Yukihiro Matsumoto <matz@ruby-lang.org> * eval.c (ev_const_get): should support constant access from @@ -9179,12 +9179,12 @@ umethod_bind(method, recv) VALUE method, recv; { struct METHOD *data, *bound; - VALUE rklass = CLASS_OF(recv), klass = rklass; + VALUE rklass = CLASS_OF(recv); Data_Get_Struct(method, struct METHOD, data); if (data->rklass != rklass) { if (FL_TEST(data->rklass, FL_SINGLETON)) { - rb_raise(rb_eTypeError, "singleton method called for a different object"); + rb_raise(rb_eTypeError, "singleton method bound for a different object"); } if (TYPE(data->rklass) == T_MODULE) { st_table *m_tbl = RCLASS(data->rklass)->m_tbl; @@ -9203,7 +9203,6 @@ umethod_bind(method, recv) method = Data_Make_Struct(rb_cMethod,struct METHOD,bm_mark,free,bound); *bound = *data; bound->recv = recv; - bound->klass = klass; bound->rklass = rklass; return method; |