merges r21084 from trunk into ruby_1_9_1.

* vm_insnhelper.c (vm_call_method, vm_call_cfunc): use original id instead of
  calling id when NODE_CFUNC or NODE_BMETHOD.
  fixes Bug #632 [ruby-core:19282].
* vm_eval.c (vm_call0, vm_call_super): ditto.
* vm_method.c (rb_add_method, rb_alias): store original id
  in nd_file field of NODE_METHOD.
* test/stringio/test_stringio.rb: add a test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@21113 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
yugui 2008-12-28 09:39:43 +00:00
parent c625220671
commit 1e8a6745b0
5 changed files with 43 additions and 11 deletions

View file

@ -379,4 +379,19 @@ class TestStringIO < Test::Unit::TestCase
assert_equal(4, f.size)
end
# This test is should in ruby/test_method.rb
# However this test depends on stringio library,
# we write it here.
class C < StringIO
alias old_init initialize
attr_reader :foo
def initialize
@foo = :ok
old_init
end
end
def test_method
assert_equal(:ok, C.new.foo, 'Bug #632 [ruby-core:19282]')
end
end