[#45866] Ruby1.8 と1.9の安全な共存 — Ayumu Aizawa <ayumu.aizawa@...>
こんにちは、あいざわです。
7 messages
2009/02/14
[#45875] ruby1.8 と ruby1.9 の instance_eval の挙動の違いについて — kohno kazuyuki <kkohno@...>
こんにちは。
5 messages
2009/02/17
[ruby-list:45876] Re: ruby1.8 と ruby1.9 の instance_eval の挙動の違いについて
From:
SASADA Koichi <ko1@...>
Date:
2009-02-17 16:21:00 UTC
List:
ruby-list #45876
ささだです.
kohno kazuyuki wrote::
> ruby1.8 と ruby1.9 で Object#instance_eval の挙動が違うケースがあるようです。
> リファレンスマニュアルには、instance_eval の引数にブロックを渡した場合、
> 「オブジェクト自身をブロック引数とするブロックを評価してその結果を返します」
> (http://doc.loveruby.net/refm/api/view/method/Object/i/instance_eval)
> とありますが、ruby1.9 ではそうはなりません。
> ブロック引数を参照しても nil が返ってきます。
>
> これはバグでしょうか?
> わかる方いたら教えてください。
もしこれが仕様でしたら,以下のパッチで直ります.どうしたもんでしょう.
Index: vm_eval.c
===================================================================
--- vm_eval.c (リビジョン 22362)
+++ vm_eval.c (作業コピー)
@@ -920,7 +920,7 @@ yield_under(VALUE under, VALUE self, VAL
}
if (values == Qundef) {
- return vm_yield_with_cref(th, 0, 0, cref);
+ return vm_yield_with_cref(th, 1, &self, cref);
}
else {
return vm_yield_with_cref(th, RARRAY_LEN(values), RARRAY_PTR(values),
cref);
--
// SASADA Koichi at atdot dot net