Actions
Bug #5519
closedEnumerator#next skips c-return hooks
Description
In some cases, especially using #next, c-calls are traced, but corresponding c-returns are not.
tracing this snippet:
a=[1,2,3,4].to_enum
b=a.next
produces this output:
c-return test4.rb:3 set_trace_func Kernel
line test4.rb:4
c-call test4.rb:4 to_enum Kernel
c-return test4.rb:4 to_enum Kernel
line test4.rb:5
c-call test4.rb:5 next Enumerator
c-call test4.rb:5 proc Kernel
c-return test4.rb:5 proc Kernel
c-call :0 each Enumerator
c-call :0 each Array
c-return test4.rb:5 next Enumerator
Enumerator#each and Array#each are c-called, but the next return jumps back up to Enumerator#next.
I get the same result on 1.9.2-p290, 1.9.2-head(r32926), and 1.9.3-head(r33569)
Actions
Like0
Like0Like0Like0