Issue #3558 has been updated by Asher Haig.


I don't think you've understood the problem... 

I call rb_block_call specifying:
* receiver
* iteration method
* block function
* data object (data2)
* argc
* argv

So my understanding (per the documentation) is that if I want only 1 object, I specify it as data2:
* rb_block_call( receiver, method, argc, argv, block, data2 )

And that my callback function is then called with argc + 2 (yield and data2 values) arguments, with argv holding only the values specified in argv passed to rb_block_call.
* callback_function( yield_data, data2, argc, argv )

This is not what I am getting. 

Instead I am getting:
* callback_function( yield_data, data2, 1, & yield_data )

In other words, argc and argv are _never_ getting passed to callback_function, which seems to me quite clearly a bug. 
----------------------------------------
http://redmine.ruby-lang.org/issues/show/3558

----------------------------------------
http://redmine.ruby-lang.org