diff options
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-07-11 12:20:28 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-07-11 12:20:28 +0000
commitc6820cc3bea5476f605a51e38c1207d266f45ff6 (patch)
parent9d64fe7ed207ae4cb74e433159ccd1bd98394da9 (diff)
* README.EXT{,.ja} (rb_block_call): fixed about third/fourth
arguments to the block. based on [ruby-core:31192] by Asher Haig. [Bug #3558] git-svn-id: svn+ssh:// b2dd03c8-39d4-4d8f-98ff-823fe69b080e
3 files changed, 19 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index de95a04b84..6eff28019a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Sun Jul 11 21:20:27 2010 Nobuyoshi Nakada <>
+ * 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 <>
* ({,dist-,real-}clean-ext): should also omit
diff --git a/README.EXT b/README.EXT
index 30269eb74f..025b035381 100644
@@ -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
[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)