まつもと ゆきひろです
In message "[ruby-list:3090] [BUG] continue"
on 97/06/06, Keiju ISHITSUKA <keiju / bc.mbn.or.jp> writes:
|
|けいじゅ@今はフリー(^^;;です.
|
|begin
| continue
|end while COND
|
|にバグがあるようです. continueした場合, CONDが評価されません. つまり,
|無限ループに陥ります.
すみません.以下のパッチでお願いします.
--- eval.c Fri May 30 02:02:43 1997
+++ eval.c.dyna Sun Jun 8 17:23:54 1997
@@ -1134,3 +1134,2 @@
if ((state = EXEC_TAG()) == 0) {
- while_next:
for (;;) {
@@ -1140,2 +1139,3 @@
rb_eval(self, node->nd_body);
+ while_next:
if (!node->nd_state && !RTEST(rb_eval(self, node->nd_cond)))
@@ -1165,3 +1165,2 @@
if ((state = EXEC_TAG()) == 0) {
- until_next:
for (;;) {
@@ -1171,2 +1170,3 @@
rb_eval(self, node->nd_body);
+ until_next:
if (!node->nd_state && RTEST(rb_eval(self, node->nd_cond)))