From 33fc55acef6a2d7b79cf5ac084bbb94cb3b14b31 Mon Sep 17 00:00:00 2001 From: nobu Date: Sun, 19 Jul 2009 02:00:27 +0000 Subject: * vm_method.c (me_opts): fixed optimized method aliasing. [ruby-dev:38824] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24201 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ test/ruby/test_alias.rb | 8 ++++++++ vm_method.c | 2 ++ 3 files changed, 15 insertions(+) diff --git a/ChangeLog b/ChangeLog index a1d507ef39..dd6db14858 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sun Jul 19 11:00:14 2009 Nobuyoshi Nakada + + * vm_method.c (me_opts): fixed optimized method aliasing. + [ruby-dev:38824] + Sun Jul 19 10:54:56 2009 Tanaka Akira * ext/socket/lib/socket.rb (Socket.accept_loop): rescue diff --git a/test/ruby/test_alias.rb b/test/ruby/test_alias.rb index f66c4a6340..7f8a32c529 100644 --- a/test/ruby/test_alias.rb +++ b/test/ruby/test_alias.rb @@ -69,4 +69,12 @@ class TestAlias < Test::Unit::TestCase } } end + + def test_send_alias + x = "abc" + class << x + alias_method :try, :__send__ + end + assert_equal("ABC", x.try(:upcase), '[ruby-dev:38824]') + end end diff --git a/vm_method.c b/vm_method.c index 4b747e9d52..9ebeeb4a4b 100644 --- a/vm_method.c +++ b/vm_method.c @@ -758,6 +758,8 @@ me_opts(const rb_method_entry_t *me) case VM_METHOD_TYPE_NOTIMPLEMENTED: case VM_METHOD_TYPE_UNDEF: return 0; + case VM_METHOD_TYPE_OPTIMIZED: + return (void *)me->body.optimize_type; default: rb_bug("rb_add_method: unsupported method type (%d)\n", me->type); return 0; -- cgit v1.2.3