* cont.c (fiber_init): initialize control frame correctly.

This fix does not affect any ordinal execution, but
  affects debug prints.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51165 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
ko1 2015-07-06 16:54:56 +00:00
Родитель bba7c4b0dc
Коммит 202643de00
2 изменённых файлов: 11 добавлений и 4 удалений

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

@ -1,3 +1,9 @@
Tue Jul 7 01:52:14 2015 Koichi Sasada <ko1@atdot.net>
* cont.c (fiber_init): initialize control frame correctly.
This fix does not affect any ordinal execution, but
affects debug prints.
Mon Jul 6 17:59:05 2015 Koichi Sasada <ko1@atdot.net>
* vm_insnhelper.c (vm_search_super_method): do not skip calling

9
cont.c
Просмотреть файл

@ -1196,14 +1196,15 @@ fiber_init(VALUE fibval, VALUE proc)
th->cfp = (void *)(th->stack + th->stack_size);
th->cfp--;
th->cfp->pc = 0;
th->cfp->sp = th->stack + 1;
th->cfp->sp = th->stack + 2;
#if VM_DEBUG_BP_CHECK
th->cfp->bp_check = 0;
#endif
th->cfp->ep = th->stack;
*th->cfp->ep = VM_ENVVAL_BLOCK_PTR(0);
th->cfp->ep = th->stack + 1;
th->cfp->ep[ 0] = VM_ENVVAL_BLOCK_PTR(0);
th->cfp->ep[-1] = 0;
th->cfp->self = Qnil;
th->cfp->flag = 0;
th->cfp->flag = VM_FRAME_MAGIC_DUMMY | VM_FRAME_FLAG_FINISH;
th->cfp->iseq = 0;
th->cfp->proc = 0;
th->cfp->block_iseq = 0;