From 49dc00ea8faf0509ebbca718d7e4c76c3370219f Mon Sep 17 00:00:00 2001 From: matz Date: Mon, 22 May 2006 07:01:53 +0000 Subject: * eval.c (umethod_bind): should not update original class. [ruby-dev:28636] git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8@10171 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ eval.c | 5 ++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7e3f39d94..dbb39dd1e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Mon May 22 15:57:39 2006 Yukihiro Matsumoto + + * eval.c (umethod_bind): should not update original class. + [ruby-dev:28636] + Mon May 22 13:38:57 2006 Yukihiro Matsumoto * eval.c (ev_const_get): should support constant access from diff --git a/eval.c b/eval.c index eebb663bc..6bb236b4a 100644 --- a/eval.c +++ b/eval.c @@ -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; -- cgit