1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* vm_core.h: remove rb_iseq_t::klass to reduce dynamic data.

* internal.h, iseq.c (rb_iseq_klass): remove it because
  rb_iseq_t::klass is removed.
* vm_insnhelper.c (vm_super_outside): do not see cfp->iseq, but
  check callable method entry on a frame.
  This fix simplify the logic to search super class.
* test/ruby/test_method.rb: support super() from Proc.
  Now, [Bug #4881] and [Bug #3136] was solved.
* proc.c (rb_mod_define_method): catch up this change.
* vm.c (vm_define_method): ditto.
* vm_backtrace.c (rb_profile_frames): now, each `frame' objects
  are rb_callable_method_entry_t data or iseq VALUEs.
  This fix introduce minor compatibility issue that
  rb_profile_frame_label() always returns
  rb_profile_frame_base_label().
* test/-ext-/debug/test_profile_frames.rb: catch up this change.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51166 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
ko1 2015-07-06 18:44:54 +00:00
parent 202643de00
commit 02d5868962
10 changed files with 106 additions and 94 deletions

View file

@ -25,12 +25,12 @@ class TestProfileFrames < Test::Unit::TestCase
}.resume
labels = [
"block (2 levels) in test_profile_frames",
"test_profile_frames",
"zab",
"baz",
"bar",
"foo",
"block in test_profile_frames",
"test_profile_frames",
]
base_labels = [
"test_profile_frames",
@ -41,12 +41,12 @@ class TestProfileFrames < Test::Unit::TestCase
"test_profile_frames",
]
full_labels = [
"block (2 levels) in TestProfileFrames#test_profile_frames",
"TestProfileFrames#test_profile_frames",
"#{obj.inspect}.zab",
"SampleClassForTestProfileFrames::Sample2#baz",
"SampleClassForTestProfileFrames.bar",
"SampleClassForTestProfileFrames#foo",
"block in TestProfileFrames#test_profile_frames",
"TestProfileFrames#test_profile_frames",
]
classes = [
TestProfileFrames,