* compile.c (iseq_compile_each): fix stack consistency bug.

a patch from Yusuke ENDOH <mame AT tsg.ne.jp>



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14629 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
ko1 2007-12-24 18:54:52 +00:00
Родитель cf41125e3a
Коммит e885517639
3 изменённых файлов: 15 добавлений и 1 удалений

Просмотреть файл

@ -1,3 +1,8 @@
Tue Dec 25 03:51:55 2007 Koichi Sasada <ko1@atdot.net>
* compile.c (iseq_compile_each): fix stack consistency bug.
a patch from Yusuke ENDOH <mame AT tsg.ne.jp>
Tue Dec 25 03:19:47 2007 WATANABE Hirofumi <eban@ruby-lang.org>
* tool/make-snapshot: must create configure and lex.c.

Просмотреть файл

@ -681,3 +681,12 @@ assert_equal 'ok', %q{
end # direct
}, '[ruby-core:14385]'
assert_equal 'ok', %q{
counter = 2
while true
counter -= 1
break if counter == 0
"#{next}"
end
:ok
}

Просмотреть файл

@ -2973,7 +2973,7 @@ iseq_compile_each(rb_iseq_t *iseq, LINK_ANCHOR *ret, NODE * node, int poped)
if (iseq->compile_data->redo_label != 0) {
/* next in while loop */
debugs("next in while\n");
pop_after_throw = 1;
pop_after_throw = poped;
goto next_by_throw;
}
else if (iseq->compile_data->end_label) {