[#70257] [Ruby trunk - Feature #11420] [Open] Introduce ID key table into MRI — ko1@...

Issue #11420 has been reported by Koichi Sasada.

11 messages 2015/08/06

[ruby-core:70526] [Ruby trunk - Bug #6981] [Closed] set_trace_func passes strange bindng on method call defined by define_method

From: ko1@...
Date: 2015-08-21 17:30:53 UTC
List: ruby-core #70526
Issue #6981 has been updated by Koichi Sasada.

Status changed from Open to Closed

Ruby 2.1 solved this issue.

----------------------------------------
Bug #6981: set_trace_func passes strange bindng on method call defined by define_method
https://bugs.ruby-lang.org/issues/6981#change-53930

* Author: Koichi Sasada
* Status: Closed
* Priority: Normal
* Assignee: Koichi Sasada
* ruby -v: ruby 2.0.0dev (2012-08-08 trunk 36657) [i386-mswin32_100]
* Backport: 
----------------------------------------
set_trace_func passes strange binding on method call ("call") if invoked method was defined by define_method.  Correctly speaking, the caller's binding was passed.

# example
class C
  define_method(:foo){
    p:foo
  }

  def bar
    p:bar
  end
end

set_trace_func(lambda{|ev, *args|
  if ev == 'call'
    p eval('self', args[3])
  end
})
C.new.foo
#=> main
C.new.bar
#=> #<C:0x2bbc360>

On Ruby 1.8, there is no problem.




-- 
https://bugs.ruby-lang.org/

In This Thread

Prev Next