** Executes "full continuation" (everything in the stack) of a ** previously interrupted coroutine until the stack is empty (or another ** interruption long-jumps out of the loop). */
| 734 | ** interruption long-jumps out of the loop). |
| 735 | */ |
| 736 | static void unroll (lua_State *L, void *ud) { |
| 737 | CallInfo *ci; |
| 738 | UNUSED(ud); |
| 739 | while ((ci = L->ci) != &L->base_ci) { /* something in the stack */ |
| 740 | if (!isLua(ci)) /* C function? */ |
| 741 | finishCcall(L, ci); /* complete its execution */ |
| 742 | else { /* Lua function */ |
| 743 | luaV_finishOp(L); /* finish interrupted instruction */ |
| 744 | luaV_execute(L, ci); /* execute down to higher C 'boundary' */ |
| 745 | } |
| 746 | } |
| 747 | } |
| 748 | |
| 749 | |
| 750 | /* |
no test coverage detected