summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-07-15 12:00:57 +0000
committeryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-07-15 12:00:57 +0000
commit0d8ac23d2a2b03932c5e222c5209d1e1eb9d1947 (patch)
treeddf20cc918fa7cb3b8f0dec4cfabedf8485eaefa
parent52cc8ef40d74007e010f36707b45e51cfbd14f0b (diff)
merges r24094 from trunk into ruby_1_9_1.
-- * enumerator.c (yielder_yield_i): use rb_proc_new instead of rb_iterate. [ruby-dev:38518] * README.EXT: rb_iterate is obsolete since 1.9; use rb_block_call instead. * README.EXT.ja: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@24122 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog10
-rw-r--r--README.EXT13
-rw-r--r--README.EXT.ja13
-rw-r--r--enumerator.c8
-rw-r--r--version.h2
5 files changed, 36 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 5b006d591f..d84546363b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+Tue Jul 14 01:06:31 2009 Yusuke Endoh <mame@tsg.ne.jp>
+
+ * enumerator.c (yielder_yield_i): use rb_proc_new instead of
+ rb_iterate. [ruby-dev:38518]
+
+ * README.EXT: rb_iterate is obsolete since 1.9; use rb_block_call
+ instead.
+
+ * README.EXT.ja: ditto.
+
Mon Jul 13 22:49:50 2009 Yuki Sonoda (Yugui) <yugui@yugui.jp>
* lib/prime.rb (Prime#prime_division): now decomposes
diff --git a/README.EXT b/README.EXT
index edfbf221a6..1cf9ad0690 100644
--- a/README.EXT
+++ b/README.EXT
@@ -1125,12 +1125,23 @@ Sets the value of the instance variable.
** Control Structure
- VALUE rb_iterate(VALUE (*func1)(), void *arg1, VALUE (*func2)(), void *arg2)
+ VALUE rb_block_call(VALUE recv, ID mid, int argc, VALUE * argv,
+ 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.
+
+ [OBSOLETE] VALUE rb_iterate(VALUE (*func1)(), void *arg1, VALUE (*func2)(), void *arg2)
Calls the function func1, supplying func2 as the block. func1 will be
called with the argument arg1. func2 receives the value from yield as
the first argument, arg2 as the second argument.
+When rb_iterate is used in 1.9, func1 has to call some Ruby-level method.
+This function is obsolete since 1.9; use rb_block_call instead.
+
VALUE rb_yield(VALUE val)
Evaluates the block with value val.
diff --git a/README.EXT.ja b/README.EXT.ja
index 9a8a4fd610..810167d544 100644
--- a/README.EXT.ja
+++ b/README.EXT.ja
@@ -1234,12 +1234,23 @@ VALUE rb_iv_set(VALUE obj, const char *name, VALUE val)
** 制御構造
-VALUE rb_iterate(VALUE (*func1)(), VALUE arg1, VALUE (*func2)(), VALUE arg2)
+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を受け取る.
+
+[OBSOLETE] VALUE rb_iterate(VALUE (*func1)(), VALUE arg1, VALUE (*func2)(), VALUE arg2)
func2をブロックとして設定し, func1をイテレータとして呼ぶ.
func1には arg1が引数として渡され, func2には第1引数にイテレー
タから与えられた値, 第2引数にarg2が渡される.
+ 1.9でrb_iterateを使う場合は, func1の中でRubyレベルのメソッド
+ を呼び出さなければならない.
+ 1.9でobsoleteとなった. 代わりにrb_block_callが用意された.
+
VALUE rb_yield(VALUE val)
valを値としてイテレータブロックを呼び出す.
diff --git a/enumerator.c b/enumerator.c
index b952808764..f153de4069 100644
--- a/enumerator.c
+++ b/enumerator.c
@@ -637,12 +637,6 @@ yielder_yield(VALUE obj, VALUE args)
}
static VALUE
-yielder_new_i(VALUE dummy)
-{
- return yielder_init(yielder_allocate(rb_cYielder), rb_block_proc());
-}
-
-static VALUE
yielder_yield_i(VALUE obj, VALUE memo, int argc, VALUE *argv)
{
return rb_yield_values2(argc, argv);
@@ -651,7 +645,7 @@ yielder_yield_i(VALUE obj, VALUE memo, int argc, VALUE *argv)
static VALUE
yielder_new(void)
{
- return rb_iterate(yielder_new_i, (VALUE)0, yielder_yield_i, (VALUE)0);
+ return yielder_init(yielder_allocate(rb_cYielder), rb_proc_new(yielder_yield_i, 0));
}
/*
diff --git a/version.h b/version.h
index faeea31093..718c17f3bb 100644
--- a/version.h
+++ b/version.h
@@ -4,7 +4,7 @@
#define RUBY_VERSION_MAJOR 1
#define RUBY_VERSION_MINOR 9
#define RUBY_VERSION_TEENY 1
-#define RUBY_PATCHLEVEL 235
+#define RUBY_PATCHLEVEL 236
#define RUBY_RELEASE_YEAR 2009
#define RUBY_RELEASE_MONTH 7
#define RUBY_RELEASE_DAY 12