The Battle for Wesnoth  1.15.1+dev
Classes | Macros | Typedefs | Functions
lstate.h File Reference
#include "lua.h"
#include "lobject.h"
#include "ltm.h"
#include "lzio.h"
#include <signal.h>
Include dependency graph for lstate.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  stringtable
 
struct  CallInfo
 
struct  global_State
 
struct  lua_State
 
union  GCUnion
 

Macros

#define l_signalT   sig_atomic_t
 
#define EXTRA_STACK   5
 
#define BASIC_STACK_SIZE   (2*LUA_MINSTACK)
 
#define KGC_NORMAL   0
 
#define KGC_EMERGENCY   1 /* gc was forced by an allocation failure */
 
#define CIST_OAH   (1<<0) /* original value of 'allowhook' */
 
#define CIST_LUA   (1<<1) /* call is running a Lua function */
 
#define CIST_HOOKED   (1<<2) /* call is running a debug hook */
 
#define CIST_FRESH
 
#define CIST_YPCALL   (1<<4) /* call is a yieldable protected call */
 
#define CIST_TAIL   (1<<5) /* call was tail called */
 
#define CIST_HOOKYIELD   (1<<6) /* last hook called yielded */
 
#define CIST_LEQ   (1<<7) /* using __lt for __le */
 
#define CIST_FIN   (1<<8) /* call is running a finalizer */
 
#define isLua(ci)   ((ci)->callstatus & CIST_LUA)
 
#define setoah(st, v)   ((st) = ((st) & ~CIST_OAH) | (v))
 
#define getoah(st)   ((st) & CIST_OAH)
 
#define G(L)   (L->l_G)
 
#define cast_u(o)   cast(union GCUnion *, (o))
 
#define gco2ts(o)   check_exp(novariant((o)->tt) == LUA_TSTRING, &((cast_u(o))->ts))
 
#define gco2u(o)   check_exp((o)->tt == LUA_TUSERDATA, &((cast_u(o))->u))
 
#define gco2lcl(o)   check_exp((o)->tt == LUA_TLCL, &((cast_u(o))->cl.l))
 
#define gco2ccl(o)   check_exp((o)->tt == LUA_TCCL, &((cast_u(o))->cl.c))
 
#define gco2cl(o)   check_exp(novariant((o)->tt) == LUA_TFUNCTION, &((cast_u(o))->cl))
 
#define gco2t(o)   check_exp((o)->tt == LUA_TTABLE, &((cast_u(o))->h))
 
#define gco2p(o)   check_exp((o)->tt == LUA_TPROTO, &((cast_u(o))->p))
 
#define gco2th(o)   check_exp((o)->tt == LUA_TTHREAD, &((cast_u(o))->th))
 
#define obj2gco(v)   check_exp(novariant((v)->tt) < LUA_TDEADKEY, (&(cast_u(v)->gc)))
 
#define gettotalbytes(g)   cast(lu_mem, (g)->totalbytes + (g)->GCdebt)
 

Typedefs

typedef struct stringtable stringtable
 
typedef struct CallInfo CallInfo
 
typedef struct global_State global_State
 

Functions

LUAI_FUNC void luaE_setdebt (global_State *g, l_mem debt)
 
LUAI_FUNC void luaE_freethread (lua_State *L, lua_State *L1)
 
LUAI_FUNC CallInfoluaE_extendCI (lua_State *L)
 
LUAI_FUNC void luaE_freeCI (lua_State *L)
 
LUAI_FUNC void luaE_shrinkCI (lua_State *L)
 

Macro Definition Documentation

◆ BASIC_STACK_SIZE

#define BASIC_STACK_SIZE   (2*LUA_MINSTACK)

Definition at line 68 of file lstate.h.

Referenced by stack_init().

◆ cast_u

#define cast_u (   o)    cast(union GCUnion *, (o))

Definition at line 222 of file lstate.h.

◆ CIST_FIN

#define CIST_FIN   (1<<8) /* call is running a finalizer */

Definition at line 125 of file lstate.h.

Referenced by GCTM(), and getfuncname().

◆ CIST_FRESH

#define CIST_FRESH
Value:
(1<<3) /* call is running on a fresh invocation
of luaV_execute */

Definition at line 119 of file lstate.h.

Referenced by luaV_execute().

◆ CIST_HOOKED

#define CIST_HOOKED   (1<<2) /* call is running a debug hook */

Definition at line 118 of file lstate.h.

Referenced by funcnamefromcode(), lua_yieldk(), and luaD_hook().

◆ CIST_HOOKYIELD

#define CIST_HOOKYIELD   (1<<6) /* last hook called yielded */

Definition at line 123 of file lstate.h.

Referenced by luaG_traceexec().

◆ CIST_LEQ

#define CIST_LEQ   (1<<7) /* using __lt for __le */

Definition at line 124 of file lstate.h.

Referenced by luaV_finishOp(), and luaV_lessequal().

◆ CIST_LUA

#define CIST_LUA   (1<<1) /* call is running a Lua function */

Definition at line 117 of file lstate.h.

Referenced by luaD_precall().

◆ CIST_OAH

#define CIST_OAH   (1<<0) /* original value of 'allowhook' */

Definition at line 116 of file lstate.h.

◆ CIST_TAIL

#define CIST_TAIL   (1<<5) /* call was tail called */

Definition at line 122 of file lstate.h.

Referenced by auxgetinfo(), callhook(), getfuncname(), and luaV_execute().

◆ CIST_YPCALL

#define CIST_YPCALL   (1<<4) /* call is a yieldable protected call */

Definition at line 121 of file lstate.h.

Referenced by findpcall(), finishCcall(), and lua_pcallk().

◆ EXTRA_STACK

#define EXTRA_STACK   5

◆ G

#define G (   L)    (L->l_G)

◆ gco2ccl

#define gco2ccl (   o)    check_exp((o)->tt == LUA_TCCL, &((cast_u(o))->cl.c))

Definition at line 229 of file lstate.h.

Referenced by freeobj(), luaF_newCclosure(), propagatemark(), and reallymarkobject().

◆ gco2cl

#define gco2cl (   o)    check_exp(novariant((o)->tt) == LUA_TFUNCTION, &((cast_u(o))->cl))

Definition at line 230 of file lstate.h.

◆ gco2lcl

#define gco2lcl (   o)    check_exp((o)->tt == LUA_TLCL, &((cast_u(o))->cl.l))

Definition at line 228 of file lstate.h.

Referenced by freeobj(), luaF_newLclosure(), propagatemark(), and reallymarkobject().

◆ gco2p

#define gco2p (   o)    check_exp((o)->tt == LUA_TPROTO, &((cast_u(o))->p))

Definition at line 233 of file lstate.h.

Referenced by freeobj(), luaF_newproto(), propagatemark(), and reallymarkobject().

◆ gco2t

#define gco2t (   o)    check_exp((o)->tt == LUA_TTABLE, &((cast_u(o))->h))

◆ gco2th

#define gco2th (   o)    check_exp((o)->tt == LUA_TTHREAD, &((cast_u(o))->th))

Definition at line 234 of file lstate.h.

Referenced by freeobj(), propagatemark(), and reallymarkobject().

◆ gco2ts

#define gco2ts (   o)    check_exp(novariant((o)->tt) == LUA_TSTRING, &((cast_u(o))->ts))

Definition at line 225 of file lstate.h.

Referenced by createstrobj(), freeobj(), and reallymarkobject().

◆ gco2u

#define gco2u (   o)    check_exp((o)->tt == LUA_TUSERDATA, &((cast_u(o))->u))

Definition at line 227 of file lstate.h.

Referenced by freeobj(), luaS_newudata(), and reallymarkobject().

◆ getoah

#define getoah (   st)    ((st) & CIST_OAH)

Definition at line 131 of file lstate.h.

Referenced by recover().

◆ gettotalbytes

#define gettotalbytes (   g)    cast(lu_mem, (g)->totalbytes + (g)->GCdebt)

Definition at line 243 of file lstate.h.

Referenced by close_state(), lua_gc(), luaC_fullgc(), luaE_setdebt(), setpause(), and singlestep().

◆ isLua

#define isLua (   ci)    ((ci)->callstatus & CIST_LUA)

◆ KGC_EMERGENCY

#define KGC_EMERGENCY   1 /* gc was forced by an allocation failure */

Definition at line 73 of file lstate.h.

Referenced by checkSizes(), luaC_fullgc(), singlestep(), and traversethread().

◆ KGC_NORMAL

#define KGC_NORMAL   0

Definition at line 72 of file lstate.h.

Referenced by lua_newstate(), luaC_freeallobjects(), and luaC_fullgc().

◆ l_signalT

#define l_signalT   sig_atomic_t

Definition at line 60 of file lstate.h.

◆ obj2gco

#define obj2gco (   v)    check_exp(novariant((v)->tt) < LUA_TDEADKEY, (&(cast_u(v)->gc)))

Definition at line 238 of file lstate.h.

Referenced by lua_newthread(), luaS_init(), luaT_init(), and luaX_init().

◆ setoah

#define setoah (   st,
 
)    ((st) = ((st) & ~CIST_OAH) | (v))

Definition at line 130 of file lstate.h.

Referenced by lua_pcallk().

Typedef Documentation

◆ CallInfo

typedef struct CallInfo CallInfo

◆ global_State

typedef struct global_State global_State

◆ stringtable

typedef struct stringtable stringtable

Function Documentation

◆ luaE_extendCI()

LUAI_FUNC CallInfo* luaE_extendCI ( lua_State L)

◆ luaE_freeCI()

LUAI_FUNC void luaE_freeCI ( lua_State L)

Definition at line 122 of file lstate.cpp.

References lua_State::ci, luaM_free, lua_State::nci, next, and CallInfo::next.

Referenced by freestack(), and luaD_shrinkstack().

◆ luaE_freethread()

LUAI_FUNC void luaE_freethread ( lua_State L,
lua_State L1 
)

◆ luaE_setdebt()

LUAI_FUNC void luaE_setdebt ( global_State g,
l_mem  debt 
)

Definition at line 98 of file lstate.cpp.

References global_State::GCdebt, gettotalbytes, lua_assert, MAX_LMEM, and global_State::totalbytes.

Referenced by lua_gc(), luaC_step(), and setpause().

◆ luaE_shrinkCI()

LUAI_FUNC void luaE_shrinkCI ( lua_State L)

Definition at line 137 of file lstate.cpp.

References lua_State::ci, luaM_free, lua_State::nci, CallInfo::next, and CallInfo::previous.

Referenced by luaD_shrinkstack().