diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | README.EXT | 10 | ||||
-rw-r--r-- | README.EXT.ja | 9 |
3 files changed, 19 insertions, 6 deletions
@@ -1,3 +1,9 @@ +Sun Jul 11 21:20:27 2010 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * README.EXT{,.ja} (rb_block_call): fixed about third/fourth + arguments to the block. based on [ruby-core:31192] by Asher + Haig. [Bug #3558] + Sun Jul 11 17:01:57 2010 Nobuyoshi Nakada <nobu@ruby-lang.org> * Makefile.in ({,dist-,real-}clean-ext): should also omit diff --git a/README.EXT b/README.EXT index 30269eb74f..025b035381 100644 --- a/README.EXT +++ b/README.EXT @@ -1167,9 +1167,13 @@ Sets the value of the instance variable. VALUE (*func) (ANYARGS), VALUE data2) Calls a method on the recv, with the method name specified by the -symbol mid, supplying func as the block. func will receive the -value from yield as the first argument, data2 as the second, and -argc/argv as the third/fourth arguments. +symbol mid, with argc arguments in argv, supplying func as the +block. When func is called as the block, it will receive the value +from yield as the first argument, and data2 as the second argument. +When yielded with multiple values (in C, rb_yield_values(), +rb_yield_values2() and rb_yield_splat()), data2 is packed as an Array, +whereas yielded values can be gotten via argc/argv of the third/fourth +arguments. [OBSOLETE] VALUE rb_iterate(VALUE (*func1)(), void *arg1, VALUE (*func2)(), void *arg2) diff --git a/README.EXT.ja b/README.EXT.ja index c35de7d42d..dae0d24b43 100644 --- a/README.EXT.ja +++ b/README.EXT.ja @@ -1260,9 +1260,12 @@ VALUE rb_iv_set(VALUE obj, const char *name, VALUE val) VALUE rb_block_call(VALUE obj, ID mid, int argc, VALUE * argv, VALUE (*func) (ANYARGS), VALUE data2) - funcをブロックとして設定し, objをレシーバ, argcとargvを引 - 数としてmidメソッドを呼び出す. funcは第一引数にyieldされた - 値, 第二引数にdata2, 第三, 第四引数にargcとargvを受け取る. + funcをブロックとして設定し,objをレシーバ,argcとargvを引数 + としてmidメソッドを呼び出す.funcは第一引数にyieldされた値, + 第二引数にdata2を受け取る.複数の値がyieldされた場合(Cでは + rb_yield_values()とrb_yield_values2(), rb_yield_splat()), + data2はArrayとしてパックされている.第三, 第四引数のargcと + argvによってyieldされた値を取り出すことができる. [OBSOLETE] VALUE rb_iterate(VALUE (*func1)(), VALUE arg1, VALUE (*func2)(), VALUE arg2) |