Lines Matching refs:L

75 #define fromstate(L)	(cast(LX *, cast(lu_byte *, (L)) - offsetof(LX, l)))  argument
87 static unsigned int makeseed (lua_State *L) { in makeseed() argument
91 addbuff(buff, p, L); /* heap variable */ in makeseed()
110 CallInfo *luaE_extendCI (lua_State *L) { in luaE_extendCI() argument
111 CallInfo *ci = luaM_new(L, CallInfo); in luaE_extendCI()
112 lua_assert(L->ci->next == NULL); in luaE_extendCI()
113 L->ci->next = ci; in luaE_extendCI()
114 ci->previous = L->ci; in luaE_extendCI()
120 void luaE_freeCI (lua_State *L) { in luaE_freeCI() argument
121 CallInfo *ci = L->ci; in luaE_freeCI()
126 luaM_free(L, ci); in luaE_freeCI()
131 static void stack_init (lua_State *L1, lua_State *L) { in stack_init() argument
134 L1->stack = luaM_newvector(L, BASIC_STACK_SIZE, TValue); in stack_init()
151 static void freestack (lua_State *L) { in freestack() argument
152 if (L->stack == NULL) in freestack()
154 L->ci = &L->base_ci; /* free the entire 'ci' list */ in freestack()
155 luaE_freeCI(L); in freestack()
156 luaM_freearray(L, L->stack, L->stacksize); /* free stack array */ in freestack()
163 static void init_registry (lua_State *L, global_State *g) { in init_registry() argument
166 Table *registry = luaH_new(L); in init_registry()
167 sethvalue(L, &g->l_registry, registry); in init_registry()
168 luaH_resize(L, registry, LUA_RIDX_LAST, 0); in init_registry()
170 setthvalue(L, &mt, L); in init_registry()
171 luaH_setint(L, registry, LUA_RIDX_MAINTHREAD, &mt); in init_registry()
173 sethvalue(L, &mt, luaH_new(L)); in init_registry()
174 luaH_setint(L, registry, LUA_RIDX_GLOBALS, &mt); in init_registry()
181 static void f_luaopen (lua_State *L, void *ud) { in f_luaopen() argument
182 global_State *g = G(L); in f_luaopen()
184 stack_init(L, L); /* init stack */ in f_luaopen()
185 init_registry(L, g); in f_luaopen()
186 luaS_resize(L, MINSTRTABSIZE); /* initial size of string table */ in f_luaopen()
187 luaT_init(L); in f_luaopen()
188 luaX_init(L); in f_luaopen()
190 g->memerrmsg = luaS_newliteral(L, MEMERRMSG); in f_luaopen()
194 luai_userstateopen(L); in f_luaopen()
202 static void preinit_state (lua_State *L, global_State *g) { in preinit_state() argument
203 G(L) = g; in preinit_state()
204 L->stack = NULL; in preinit_state()
205 L->ci = NULL; in preinit_state()
206 L->stacksize = 0; in preinit_state()
207 L->errorJmp = NULL; in preinit_state()
208 L->nCcalls = 0; in preinit_state()
209 L->hook = NULL; in preinit_state()
210 L->hookmask = 0; in preinit_state()
211 L->basehookcount = 0; in preinit_state()
212 L->allowhook = 1; in preinit_state()
213 resethookcount(L); in preinit_state()
214 L->openupval = NULL; in preinit_state()
215 L->nny = 1; in preinit_state()
216 L->status = LUA_OK; in preinit_state()
217 L->errfunc = 0; in preinit_state()
221 static void close_state (lua_State *L) { in close_state() argument
222 global_State *g = G(L); in close_state()
223 luaF_close(L, L->stack); /* close all upvalues for this thread */ in close_state()
224 luaC_freeallobjects(L); /* collect all objects */ in close_state()
226 luai_userstateclose(L); in close_state()
227 luaM_freearray(L, G(L)->strt.hash, G(L)->strt.size); in close_state()
228 luaZ_freebuffer(L, &g->buff); in close_state()
229 freestack(L); in close_state()
231 (*g->frealloc)(g->ud, fromstate(L), sizeof(LG), 0); /* free main block */ in close_state()
235 LUA_API lua_State *lua_newthread (lua_State *L) { in lua_newthread() argument
237 lua_lock(L); in lua_newthread()
238 luaC_checkGC(L); in lua_newthread()
239 L1 = &luaC_newobj(L, LUA_TTHREAD, sizeof(LX), NULL, offsetof(LX, l))->th; in lua_newthread()
240 setthvalue(L, L->top, L1); in lua_newthread()
241 api_incr_top(L); in lua_newthread()
242 preinit_state(L1, G(L)); in lua_newthread()
243 L1->hookmask = L->hookmask; in lua_newthread()
244 L1->basehookcount = L->basehookcount; in lua_newthread()
245 L1->hook = L->hook; in lua_newthread()
247 luai_userstatethread(L, L1); in lua_newthread()
248 stack_init(L1, L); /* init stack */ in lua_newthread()
249 lua_unlock(L); in lua_newthread()
254 void luaE_freethread (lua_State *L, lua_State *L1) { in luaE_freethread() argument
258 luai_userstatefree(L, L1); in luaE_freethread()
260 luaM_free(L, l); in luaE_freethread()
266 lua_State *L; in lua_newstate() local
270 L = &l->l.l; in lua_newstate()
272 L->next = NULL; in lua_newstate()
273 L->tt = LUA_TTHREAD; in lua_newstate()
275 L->marked = luaC_white(g); in lua_newstate()
277 preinit_state(L, g); in lua_newstate()
280 g->mainthread = L; in lua_newstate()
281 g->seed = makeseed(L); in lua_newstate()
290 luaZ_initbuffer(L, &g->buff); in lua_newstate()
306 if (luaD_rawrunprotected(L, f_luaopen, NULL) != LUA_OK) { in lua_newstate()
308 close_state(L); in lua_newstate()
309 L = NULL; in lua_newstate()
311 return L; in lua_newstate()
315 LUA_API void lua_close (lua_State *L) { in lua_close() argument
316 L = G(L)->mainthread; /* only the main thread can be closed */ in lua_close()
317 lua_lock(L); in lua_close()
318 close_state(L); in lua_close()