* vm.c (vm_exec): move escape_ep into exception block, since it is
  updated every time entering the block.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40794 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2013-05-17 03:39:40 +00:00
Родитель d05010f6a4
Коммит 4621799d3d
1 изменённых файлов: 2 добавлений и 1 удалений

3
vm.c
Просмотреть файл

@ -1190,7 +1190,6 @@ vm_exec(rb_thread_t *th)
int state;
VALUE result, err;
VALUE initial = 0;
VALUE *volatile escape_ep = NULL;
TH_PUSH_TAG(th);
_tag.retval = Qnil;
@ -1210,6 +1209,7 @@ vm_exec(rb_thread_t *th)
VALUE catch_iseqval;
rb_control_frame_t *cfp;
VALUE type;
VALUE *escape_ep;
err = th->errinfo;
@ -1228,6 +1228,7 @@ vm_exec(rb_thread_t *th)
cfp = th->cfp;
epc = cfp->pc - cfp->iseq->iseq_encoded;
escape_ep = NULL;
if (state == TAG_BREAK || state == TAG_RETURN) {
escape_ep = GET_THROWOBJ_CATCH_POINT(err);