Lines Matching refs:L
58 #define LUAI_THROW(L,c) throw(c) argument
59 #define LUAI_TRY(L,c,a) \ argument
66 #define LUAI_THROW(L,c) _longjmp((c)->b, 1) argument
67 #define LUAI_TRY(L,c,a) if (_setjmp((c)->b) == 0) { a } argument
73 #define LUAI_THROW(L,c) longjmp((c)->b, 1) argument
74 #define LUAI_TRY(L,c,a) if (setjmp((c)->b) == 0) { a } argument
91 void luaD_seterrorobj (lua_State *L, int errcode, StkId oldtop) { in luaD_seterrorobj() argument
94 setsvalue2s(L, oldtop, G(L)->memerrmsg); /* reuse preregistered msg. */ in luaD_seterrorobj()
103 setobjs2s(L, oldtop, L->top.p - 1); /* error message on current top */ in luaD_seterrorobj()
107 L->top.p = oldtop + 1; in luaD_seterrorobj()
111 l_noret luaD_throw (lua_State *L, int errcode) { in luaD_throw() argument
112 if (L->errorJmp) { /* thread has an error handler? */ in luaD_throw()
113 L->errorJmp->status = errcode; /* set status */ in luaD_throw()
114 LUAI_THROW(L, L->errorJmp); /* jump to it */ in luaD_throw()
117 global_State *g = G(L); in luaD_throw()
118 errcode = luaE_resetthread(L, errcode); /* close all upvalues */ in luaD_throw()
119 L->status = errcode; in luaD_throw()
121 setobjs2s(L, g->mainthread->top.p++, L->top.p - 1); /* copy error obj. */ in luaD_throw()
126 lua_unlock(L); in luaD_throw()
127 g->panic(L); /* call panic function (last chance to jump out) */ in luaD_throw()
135 int luaD_rawrunprotected (lua_State *L, Pfunc f, void *ud) { in luaD_rawrunprotected() argument
136 l_uint32 oldnCcalls = L->nCcalls; in luaD_rawrunprotected()
139 lj.previous = L->errorJmp; /* chain new error handler */ in luaD_rawrunprotected()
140 L->errorJmp = &lj; in luaD_rawrunprotected()
141 LUAI_TRY(L, &lj, in luaD_rawrunprotected()
142 (*f)(L, ud); in luaD_rawrunprotected()
144 L->errorJmp = lj.previous; /* restore old error handler */ in luaD_rawrunprotected()
145 L->nCcalls = oldnCcalls; in luaD_rawrunprotected()
162 static void relstack (lua_State *L) { in relstack() argument
165 L->top.offset = savestack(L, L->top.p); in relstack()
166 L->tbclist.offset = savestack(L, L->tbclist.p); in relstack()
167 for (up = L->openupval; up != NULL; up = up->u.open.next) in relstack()
168 up->v.offset = savestack(L, uplevel(up)); in relstack()
169 for (ci = L->ci; ci != NULL; ci = ci->previous) { in relstack()
170 ci->top.offset = savestack(L, ci->top.p); in relstack()
171 ci->func.offset = savestack(L, ci->func.p); in relstack()
179 static void correctstack (lua_State *L) { in correctstack() argument
182 L->top.p = restorestack(L, L->top.offset); in correctstack()
183 L->tbclist.p = restorestack(L, L->tbclist.offset); in correctstack()
184 for (up = L->openupval; up != NULL; up = up->u.open.next) in correctstack()
185 up->v.p = s2v(restorestack(L, up->v.offset)); in correctstack()
186 for (ci = L->ci; ci != NULL; ci = ci->previous) { in correctstack()
187 ci->top.p = restorestack(L, ci->top.offset); in correctstack()
188 ci->func.p = restorestack(L, ci->func.offset); in correctstack()
200 l_noret luaD_errerr (lua_State *L) { in luaD_errerr() argument
201 TString *msg = luaS_newliteral(L, "error in error handling"); in luaD_errerr()
202 setsvalue2s(L, L->top.p, msg); in luaD_errerr()
203 L->top.p++; /* assume EXTRA_STACK */ in luaD_errerr()
204 luaD_throw(L, LUA_ERRERR); in luaD_errerr()
219 int luaD_reallocstack (lua_State *L, int newsize, int raiseerror) { in luaD_reallocstack() argument
220 int oldsize = stacksize(L); in luaD_reallocstack()
223 int oldgcstop = G(L)->gcstopem; in luaD_reallocstack()
225 relstack(L); /* change pointers to offsets */ in luaD_reallocstack()
226 G(L)->gcstopem = 1; /* stop emergency collection */ in luaD_reallocstack()
227 newstack = luaM_reallocvector(L, L->stack.p, oldsize + EXTRA_STACK, in luaD_reallocstack()
229 G(L)->gcstopem = oldgcstop; /* restore emergency collection */ in luaD_reallocstack()
231 correctstack(L); /* change offsets back to pointers */ in luaD_reallocstack()
233 luaM_error(L); in luaD_reallocstack()
236 L->stack.p = newstack; in luaD_reallocstack()
237 correctstack(L); /* change offsets back to pointers */ in luaD_reallocstack()
238 L->stack_last.p = L->stack.p + newsize; in luaD_reallocstack()
249 int luaD_growstack (lua_State *L, int n, int raiseerror) { in luaD_growstack() argument
250 int size = stacksize(L); in luaD_growstack()
255 lua_assert(stacksize(L) == ERRORSTACKSIZE); in luaD_growstack()
257 luaD_errerr(L); /* error inside message handler */ in luaD_growstack()
262 int needed = cast_int(L->top.p - L->stack.p) + n; in luaD_growstack()
268 return luaD_reallocstack(L, newsize, raiseerror); in luaD_growstack()
272 luaD_reallocstack(L, ERRORSTACKSIZE, raiseerror); in luaD_growstack()
274 luaG_runerror(L, "stack overflow"); in luaD_growstack()
283 static int stackinuse (lua_State *L) { in stackinuse() argument
286 StkId lim = L->top.p; in stackinuse()
287 for (ci = L->ci; ci != NULL; ci = ci->previous) { in stackinuse()
290 lua_assert(lim <= L->stack_last.p + EXTRA_STACK); in stackinuse()
291 res = cast_int(lim - L->stack.p) + 1; /* part of stack in use */ in stackinuse()
307 void luaD_shrinkstack (lua_State *L) { in luaD_shrinkstack() argument
308 int inuse = stackinuse(L); in luaD_shrinkstack()
312 if (inuse <= LUAI_MAXSTACK && stacksize(L) > max) { in luaD_shrinkstack()
314 luaD_reallocstack(L, nsize, 0); /* ok if that fails */ in luaD_shrinkstack()
317 condmovestack(L,{},{}); /* (change only for debugging) */ in luaD_shrinkstack()
318 luaE_shrinkCI(L); /* shrink CI list */ in luaD_shrinkstack()
322 void luaD_inctop (lua_State *L) { in luaD_inctop() argument
323 luaD_checkstack(L, 1); in luaD_inctop()
324 L->top.p++; in luaD_inctop()
335 void luaD_hook (lua_State *L, int event, int line, in luaD_hook() argument
337 lua_Hook hook = L->hook; in luaD_hook()
338 if (hook && L->allowhook) { /* make sure there is a hook */ in luaD_hook()
340 CallInfo *ci = L->ci; in luaD_hook()
341 ptrdiff_t top = savestack(L, L->top.p); /* preserve original 'top' */ in luaD_hook()
342 ptrdiff_t ci_top = savestack(L, ci->top.p); /* idem for 'ci->top' */ in luaD_hook()
352 if (isLua(ci) && L->top.p < ci->top.p) in luaD_hook()
353 L->top.p = ci->top.p; /* protect entire activation register */ in luaD_hook()
354 luaD_checkstack(L, LUA_MINSTACK); /* ensure minimum stack size */ in luaD_hook()
355 if (ci->top.p < L->top.p + LUA_MINSTACK) in luaD_hook()
356 ci->top.p = L->top.p + LUA_MINSTACK; in luaD_hook()
357 L->allowhook = 0; /* cannot call hooks inside a hook */ in luaD_hook()
359 lua_unlock(L); in luaD_hook()
360 (*hook)(L, &ar); in luaD_hook()
361 lua_lock(L); in luaD_hook()
362 lua_assert(!L->allowhook); in luaD_hook()
363 L->allowhook = 1; in luaD_hook()
364 ci->top.p = restorestack(L, ci_top); in luaD_hook()
365 L->top.p = restorestack(L, top); in luaD_hook()
376 void luaD_hookcall (lua_State *L, CallInfo *ci) { in luaD_hookcall() argument
377 L->oldpc = 0; /* set 'oldpc' for new function */ in luaD_hookcall()
378 if (L->hookmask & LUA_MASKCALL) { /* is call hook on? */ in luaD_hookcall()
383 luaD_hook(L, event, -1, 1, p->numparams); in luaD_hookcall()
394 static void rethook (lua_State *L, CallInfo *ci, int nres) { in rethook() argument
395 if (L->hookmask & LUA_MASKRET) { /* is return hook on? */ in rethook()
396 StkId firstres = L->top.p - nres; /* index of first result */ in rethook()
406 luaD_hook(L, LUA_HOOKRET, -1, ftransfer, nres); /* call it */ in rethook()
410 L->oldpc = pcRel(ci->u.l.savedpc, ci_func(ci)->p); /* set 'oldpc' */ in rethook()
419 static StkId tryfuncTM (lua_State *L, StkId func) { in tryfuncTM() argument
422 checkstackGCp(L, 1, func); /* space for metamethod */ in tryfuncTM()
423 tm = luaT_gettmbyobj(L, s2v(func), TM_CALL); /* (after previous GC) */ in tryfuncTM()
425 luaG_callerror(L, s2v(func)); /* nothing to call */ in tryfuncTM()
426 for (p = L->top.p; p > func; p--) /* open space for metamethod */ in tryfuncTM()
427 setobjs2s(L, p, p-1); in tryfuncTM()
428 L->top.p++; /* stack space pre-allocated by the caller */ in tryfuncTM()
429 setobj2s(L, func, tm); /* metamethod is the new function to be called */ in tryfuncTM()
440 l_sinline void moveresults (lua_State *L, StkId res, int nres, int wanted) { in moveresults() argument
445 L->top.p = res; in moveresults()
451 setobjs2s(L, res, L->top.p - nres); /* move it to proper place */ in moveresults()
452 L->top.p = res + 1; in moveresults()
459 L->ci->callstatus |= CIST_CLSRET; /* in case of yields */ in moveresults()
460 L->ci->u2.nres = nres; in moveresults()
461 res = luaF_close(L, res, CLOSEKTOP, 1); in moveresults()
462 L->ci->callstatus &= ~CIST_CLSRET; in moveresults()
463 if (L->hookmask) { /* if needed, call hook after '__close's */ in moveresults()
464 ptrdiff_t savedres = savestack(L, res); in moveresults()
465 rethook(L, L->ci, nres); in moveresults()
466 res = restorestack(L, savedres); /* hook can move stack */ in moveresults()
475 firstresult = L->top.p - nres; /* index of first result */ in moveresults()
479 setobjs2s(L, res + i, firstresult + i); in moveresults()
482 L->top.p = res + wanted; /* top points after the last result */ in moveresults()
492 void luaD_poscall (lua_State *L, CallInfo *ci, int nres) { in luaD_poscall() argument
494 if (l_unlikely(L->hookmask && !hastocloseCfunc(wanted))) in luaD_poscall()
495 rethook(L, ci, nres); in luaD_poscall()
497 moveresults(L, ci->func.p, nres, wanted); in luaD_poscall()
501 L->ci = ci->previous; /* back to caller (after closing variables) */ in luaD_poscall()
506 #define next_ci(L) (L->ci->next ? L->ci->next : luaE_extendCI(L)) argument
509 l_sinline CallInfo *prepCallInfo (lua_State *L, StkId func, int nret, in prepCallInfo() argument
511 CallInfo *ci = L->ci = next_ci(L); /* new frame */ in prepCallInfo()
523 l_sinline int precallC (lua_State *L, StkId func, int nresults, in precallC() argument
527 checkstackGCp(L, LUA_MINSTACK, func); /* ensure minimum stack size */ in precallC()
528 L->ci = ci = prepCallInfo(L, func, nresults, CIST_C, in precallC()
529 L->top.p + LUA_MINSTACK); in precallC()
530 lua_assert(ci->top.p <= L->stack_last.p); in precallC()
531 if (l_unlikely(L->hookmask & LUA_MASKCALL)) { in precallC()
532 int narg = cast_int(L->top.p - func) - 1; in precallC()
533 luaD_hook(L, LUA_HOOKCALL, -1, 1, narg); in precallC()
535 lua_unlock(L); in precallC()
536 n = (*f)(L); /* do the actual call */ in precallC()
537 lua_lock(L); in precallC()
538 api_checknelems(L, n); in precallC()
539 luaD_poscall(L, ci, n); in precallC()
550 int luaD_pretailcall (lua_State *L, CallInfo *ci, StkId func, in luaD_pretailcall() argument
555 return precallC(L, func, LUA_MULTRET, clCvalue(s2v(func))->f); in luaD_pretailcall()
557 return precallC(L, func, LUA_MULTRET, fvalue(s2v(func))); in luaD_pretailcall()
563 checkstackGCp(L, fsize - delta, func); in luaD_pretailcall()
566 setobjs2s(L, ci->func.p + i, func + i); in luaD_pretailcall()
571 lua_assert(ci->top.p <= L->stack_last.p); in luaD_pretailcall()
574 L->top.p = func + narg1; /* set top */ in luaD_pretailcall()
578 func = tryfuncTM(L, func); /* try to get '__call' metamethod */ in luaD_pretailcall()
595 CallInfo *luaD_precall (lua_State *L, StkId func, int nresults) { in luaD_precall() argument
599 precallC(L, func, nresults, clCvalue(s2v(func))->f); in luaD_precall()
602 precallC(L, func, nresults, fvalue(s2v(func))); in luaD_precall()
607 int narg = cast_int(L->top.p - func) - 1; /* number of real arguments */ in luaD_precall()
610 checkstackGCp(L, fsize, func); in luaD_precall()
611 L->ci = ci = prepCallInfo(L, func, nresults, 0, func + 1 + fsize); in luaD_precall()
614 setnilvalue(s2v(L->top.p++)); /* complete missing arguments */ in luaD_precall()
615 lua_assert(ci->top.p <= L->stack_last.p); in luaD_precall()
619 func = tryfuncTM(L, func); /* try to get '__call' metamethod */ in luaD_precall()
635 l_sinline void ccall (lua_State *L, StkId func, int nResults, l_uint32 inc) { in ccall() argument
637 L->nCcalls += inc; in ccall()
638 if (l_unlikely(getCcalls(L) >= LUAI_MAXCCALLS)) { in ccall()
639 checkstackp(L, 0, func); /* free any use of EXTRA_STACK */ in ccall()
640 luaE_checkcstack(L); in ccall()
642 if ((ci = luaD_precall(L, func, nResults)) != NULL) { /* Lua function? */ in ccall()
644 luaV_execute(L, ci); /* call it */ in ccall()
646 L->nCcalls -= inc; in ccall()
653 void luaD_call (lua_State *L, StkId func, int nResults) { in luaD_call() argument
654 ccall(L, func, nResults, 1); in luaD_call()
661 void luaD_callnoyield (lua_State *L, StkId func, int nResults) { in luaD_callnoyield() argument
662 ccall(L, func, nResults, nyci); in luaD_callnoyield()
682 static int finishpcallk (lua_State *L, CallInfo *ci) { in finishpcallk() argument
687 StkId func = restorestack(L, ci->u2.funcidx); in finishpcallk()
688 L->allowhook = getoah(ci->callstatus); /* restore 'allowhook' */ in finishpcallk()
689 func = luaF_close(L, func, status, 1); /* can yield or raise an error */ in finishpcallk()
690 luaD_seterrorobj(L, status, func); in finishpcallk()
691 luaD_shrinkstack(L); /* restore stack size in case of overflow */ in finishpcallk()
695 L->errfunc = ci->u.c.old_errfunc; in finishpcallk()
715 static void finishCcall (lua_State *L, CallInfo *ci) { in finishCcall() argument
725 lua_assert(ci->u.c.k != NULL && yieldable(L)); in finishCcall()
727 status = finishpcallk(L, ci); /* finish it */ in finishCcall()
728 adjustresults(L, LUA_MULTRET); /* finish 'lua_callk' */ in finishCcall()
729 lua_unlock(L); in finishCcall()
730 n = (*ci->u.c.k)(L, status, ci->u.c.ctx); /* call continuation */ in finishCcall()
731 lua_lock(L); in finishCcall()
732 api_checknelems(L, n); in finishCcall()
734 luaD_poscall(L, ci, n); /* finish 'luaD_call' */ in finishCcall()
743 static void unroll (lua_State *L, void *ud) { in unroll() argument
746 while ((ci = L->ci) != &L->base_ci) { /* something in the stack */ in unroll()
748 finishCcall(L, ci); /* complete its execution */ in unroll()
750 luaV_finishOp(L); /* finish interrupted instruction */ in unroll()
751 luaV_execute(L, ci); /* execute down to higher C 'boundary' */ in unroll()
761 static CallInfo *findpcall (lua_State *L) { in findpcall() argument
763 for (ci = L->ci; ci != NULL; ci = ci->previous) { /* search for a pcall */ in findpcall()
776 static int resume_error (lua_State *L, const char *msg, int narg) { in resume_error() argument
777 L->top.p -= narg; /* remove args from the stack */ in resume_error()
778 setsvalue2s(L, L->top.p, luaS_new(L, msg)); /* push error message */ in resume_error()
779 api_incr_top(L); in resume_error()
780 lua_unlock(L); in resume_error()
792 static void resume (lua_State *L, void *ud) { in resume() argument
794 StkId firstArg = L->top.p - n; /* first argument */ in resume()
795 CallInfo *ci = L->ci; in resume()
796 if (L->status == LUA_OK) /* starting a coroutine? */ in resume()
797 ccall(L, firstArg - 1, LUA_MULTRET, 0); /* just call its body */ in resume()
799 lua_assert(L->status == LUA_YIELD); in resume()
800 L->status = LUA_OK; /* mark that it is running (again) */ in resume()
806 L->top.p = firstArg; /* discard arguments */ in resume()
807 luaV_execute(L, ci); /* just continue running Lua code */ in resume()
811 lua_unlock(L); in resume()
812 n = (*ci->u.c.k)(L, LUA_YIELD, ci->u.c.ctx); /* call continuation */ in resume()
813 lua_lock(L); in resume()
814 api_checknelems(L, n); in resume()
816 luaD_poscall(L, ci, n); /* finish 'luaD_call' */ in resume()
818 unroll(L, NULL); /* run continuation */ in resume()
831 static int precover (lua_State *L, int status) { in precover() argument
833 while (errorstatus(status) && (ci = findpcall(L)) != NULL) { in precover()
834 L->ci = ci; /* go down to recovery functions */ in precover()
836 status = luaD_rawrunprotected(L, unroll, NULL); in precover()
842 LUA_API int lua_resume (lua_State *L, lua_State *from, int nargs, in lua_resume() argument
845 lua_lock(L); in lua_resume()
846 if (L->status == LUA_OK) { /* may be starting a coroutine */ in lua_resume()
847 if (L->ci != &L->base_ci) /* not in base level? */ in lua_resume()
848 return resume_error(L, "cannot resume non-suspended coroutine", nargs); in lua_resume()
849 else if (L->top.p - (L->ci->func.p + 1) == nargs) /* no function? */ in lua_resume()
850 return resume_error(L, "cannot resume dead coroutine", nargs); in lua_resume()
852 else if (L->status != LUA_YIELD) /* ended with errors? */ in lua_resume()
853 return resume_error(L, "cannot resume dead coroutine", nargs); in lua_resume()
854 L->nCcalls = (from) ? getCcalls(from) : 0; in lua_resume()
855 if (getCcalls(L) >= LUAI_MAXCCALLS) in lua_resume()
856 return resume_error(L, "C stack overflow", nargs); in lua_resume()
857 L->nCcalls++; in lua_resume()
858 luai_userstateresume(L, nargs); in lua_resume()
859 api_checknelems(L, (L->status == LUA_OK) ? nargs + 1 : nargs); in lua_resume()
860 status = luaD_rawrunprotected(L, resume, &nargs); in lua_resume()
862 status = precover(L, status); in lua_resume()
864 lua_assert(status == L->status); /* normal end or yield */ in lua_resume()
866 L->status = cast_byte(status); /* mark thread as 'dead' */ in lua_resume()
867 luaD_seterrorobj(L, status, L->top.p); /* push error message */ in lua_resume()
868 L->ci->top.p = L->top.p; in lua_resume()
870 *nresults = (status == LUA_YIELD) ? L->ci->u2.nyield in lua_resume()
871 : cast_int(L->top.p - (L->ci->func.p + 1)); in lua_resume()
872 lua_unlock(L); in lua_resume()
877 LUA_API int lua_isyieldable (lua_State *L) { in lua_isyieldable() argument
878 return yieldable(L); in lua_isyieldable()
882 LUA_API int lua_yieldk (lua_State *L, int nresults, lua_KContext ctx, in lua_yieldk() argument
885 luai_userstateyield(L, nresults); in lua_yieldk()
886 lua_lock(L); in lua_yieldk()
887 ci = L->ci; in lua_yieldk()
888 api_checknelems(L, nresults); in lua_yieldk()
889 if (l_unlikely(!yieldable(L))) { in lua_yieldk()
890 if (L != G(L)->mainthread) in lua_yieldk()
891 luaG_runerror(L, "attempt to yield across a C-call boundary"); in lua_yieldk()
893 luaG_runerror(L, "attempt to yield from outside a coroutine"); in lua_yieldk()
895 L->status = LUA_YIELD; in lua_yieldk()
899 api_check(L, nresults == 0, "hooks cannot yield values"); in lua_yieldk()
900 api_check(L, k == NULL, "hooks cannot continue after yielding"); in lua_yieldk()
905 luaD_throw(L, LUA_YIELD); in lua_yieldk()
908 lua_unlock(L); in lua_yieldk()
925 static void closepaux (lua_State *L, void *ud) { in closepaux() argument
927 luaF_close(L, pcl->level, pcl->status, 0); in closepaux()
935 int luaD_closeprotected (lua_State *L, ptrdiff_t level, int status) { in luaD_closeprotected() argument
936 CallInfo *old_ci = L->ci; in luaD_closeprotected()
937 lu_byte old_allowhooks = L->allowhook; in luaD_closeprotected()
940 pcl.level = restorestack(L, level); pcl.status = status; in luaD_closeprotected()
941 status = luaD_rawrunprotected(L, &closepaux, &pcl); in luaD_closeprotected()
945 L->ci = old_ci; in luaD_closeprotected()
946 L->allowhook = old_allowhooks; in luaD_closeprotected()
957 int luaD_pcall (lua_State *L, Pfunc func, void *u, in luaD_pcall() argument
960 CallInfo *old_ci = L->ci; in luaD_pcall()
961 lu_byte old_allowhooks = L->allowhook; in luaD_pcall()
962 ptrdiff_t old_errfunc = L->errfunc; in luaD_pcall()
963 L->errfunc = ef; in luaD_pcall()
964 status = luaD_rawrunprotected(L, func, u); in luaD_pcall()
966 L->ci = old_ci; in luaD_pcall()
967 L->allowhook = old_allowhooks; in luaD_pcall()
968 status = luaD_closeprotected(L, old_top, status); in luaD_pcall()
969 luaD_seterrorobj(L, status, restorestack(L, old_top)); in luaD_pcall()
970 luaD_shrinkstack(L); /* restore stack size in case of overflow */ in luaD_pcall()
972 L->errfunc = old_errfunc; in luaD_pcall()
990 static void checkmode (lua_State *L, const char *mode, const char *x) { in checkmode() argument
992 luaO_pushfstring(L, in checkmode()
994 luaD_throw(L, LUA_ERRSYNTAX); in checkmode()
999 static void f_parser (lua_State *L, void *ud) { in f_parser() argument
1004 checkmode(L, p->mode, "binary"); in f_parser()
1005 cl = luaU_undump(L, p->z, p->name); in f_parser()
1008 checkmode(L, p->mode, "text"); in f_parser()
1009 cl = luaY_parser(L, p->z, &p->buff, &p->dyd, p->name, c); in f_parser()
1012 luaF_initupvals(L, cl); in f_parser()
1016 int luaD_protectedparser (lua_State *L, ZIO *z, const char *name, in luaD_protectedparser() argument
1020 incnny(L); /* cannot yield during parsing */ in luaD_protectedparser()
1025 luaZ_initbuffer(L, &p.buff); in luaD_protectedparser()
1026 status = luaD_pcall(L, f_parser, &p, savestack(L, L->top.p), L->errfunc); in luaD_protectedparser()
1027 luaZ_freebuffer(L, &p.buff); in luaD_protectedparser()
1028 luaM_freearray(L, p.dyd.actvar.arr, p.dyd.actvar.size); in luaD_protectedparser()
1029 luaM_freearray(L, p.dyd.gt.arr, p.dyd.gt.size); in luaD_protectedparser()
1030 luaM_freearray(L, p.dyd.label.arr, p.dyd.label.size); in luaD_protectedparser()
1031 decnny(L); in luaD_protectedparser()