summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2006-05-22 07:01:53 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2006-05-22 07:01:53 +0000
commit49dc00ea8faf0509ebbca718d7e4c76c3370219f (patch)
tree33e8e741484056f3c1492fc0c8b0619657772645
parent421977042b06e94e2296a1b8fbb11ac4453a0a22 (diff)
downloadruby-49dc00ea8faf0509ebbca718d7e4c76c3370219f.tar.gz
ruby-49dc00ea8faf0509ebbca718d7e4c76c3370219f.tar.xz
ruby-49dc00ea8faf0509ebbca718d7e4c76c3370219f.zip
* 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
-rw-r--r--ChangeLog5
-rw-r--r--eval.c5
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 <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
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;