On 11 July 2010 13:12, Asher Haig <redmine / ruby-lang.org> wrote:
> 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.

Please see my answer then ;)