lua5.4
| 宏定义 | 函数
ldo.c 文件参考
#include "lprefix.h"
#include <setjmp.h>
#include <stdlib.h>
#include <string.h>
#include "lua.h"
#include "lapi.h"
#include "ldebug.h"
#include "ldo.h"
#include "lfunc.h"
#include "lgc.h"
#include "lmem.h"
#include "lobject.h"
#include "lopcodes.h"
#include "lparser.h"
#include "lstate.h"
#include "lstring.h"
#include "ltable.h"
#include "ltm.h"
#include "lundump.h"
#include "lvm.h"
#include "lzio.h"
ldo.c 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:

struct  lua_longjmp
 
struct  SParser
 

宏定义

#define ldo_c
 
#define LUA_CORE
 
#define errorstatus(s)   ((s) > LUA_YIELD)
 
#define LUAI_THROW(L, c)   longjmp((c)->b, 1)
 
#define LUAI_TRY(L, c, a)   if (setjmp((c)->b) == 0) { a }
 
#define luai_jmpbuf   jmp_buf
 
#define ERRORSTACKSIZE   (LUAI_MAXSTACK + 200)
 
#define next_ci(L)   (L->ci->next ? L->ci->next : luaE_extendCI(L))
 

函数

void luaD_seterrorobj (lua_State *L, int errcode, StkId oldtop)
 
l_noret luaD_throw (lua_State *L, int errcode)
 
int luaD_rawrunprotected (lua_State *L, Pfunc f, void *ud)
 
static void correctstack (lua_State *L, StkId oldstack, StkId newstack)
 
int luaD_reallocstack (lua_State *L, int newsize, int raiseerror)
 
int luaD_growstack (lua_State *L, int n, int raiseerror)
 
static int stackinuse (lua_State *L)
 
void luaD_shrinkstack (lua_State *L)
 
void luaD_inctop (lua_State *L)
 
void luaD_hook (lua_State *L, int event, int line, int ftransfer, int ntransfer)
 
void luaD_hookcall (lua_State *L, CallInfo *ci)
 
static StkId rethook (lua_State *L, CallInfo *ci, StkId firstres, int nres)
 
void luaD_tryfuncTM (lua_State *L, StkId func)
 
static void moveresults (lua_State *L, StkId res, int nres, int wanted)
 
void luaD_poscall (lua_State *L, CallInfo *ci, int nres)
 
void luaD_pretailcall (lua_State *L, CallInfo *ci, StkId func, int narg1)
 
CallInfoluaD_precall (lua_State *L, StkId func, int nresults)
 
static void ccall (lua_State *L, StkId func, int nResults, int inc)
 
void luaD_call (lua_State *L, StkId func, int nResults)
 
void luaD_callnoyield (lua_State *L, StkId func, int nResults)
 
static void finishCcall (lua_State *L, int status)
 
static void unroll (lua_State *L, void *ud)
 
static CallInfofindpcall (lua_State *L)
 
static int recover (lua_State *L, int status)
 
static int resume_error (lua_State *L, const char *msg, int narg)
 
static void resume (lua_State *L, void *ud)
 
LUA_API int lua_resume (lua_State *L, lua_State *from, int nargs, int *nresults)
 
LUA_API int lua_isyieldable (lua_State *L)
 
LUA_API int lua_yieldk (lua_State *L, int nresults, lua_KContext ctx, lua_KFunction k)
 
int luaD_pcall (lua_State *L, Pfunc func, void *u, ptrdiff_t old_top, ptrdiff_t ef)
 
static void checkmode (lua_State *L, const char *mode, const char *x)
 
static void f_parser (lua_State *L, void *ud)
 
int luaD_protectedparser (lua_State *L, ZIO *z, const char *name, const char *mode)
 

宏定义说明

◆ ERRORSTACKSIZE

#define ERRORSTACKSIZE   (LUAI_MAXSTACK + 200)

◆ errorstatus

#define errorstatus (   s)    ((s) > LUA_YIELD)

◆ ldo_c

#define ldo_c

◆ LUA_CORE

#define LUA_CORE

◆ luai_jmpbuf

#define luai_jmpbuf   jmp_buf

◆ LUAI_THROW

#define LUAI_THROW (   L,
 
)    longjmp((c)->b, 1)

◆ LUAI_TRY

#define LUAI_TRY (   L,
  c,
 
)    if (setjmp((c)->b) == 0) { a }

◆ next_ci

#define next_ci (   L)    (L->ci->next ? L->ci->next : luaE_extendCI(L))

函数说明

◆ ccall()

static void ccall ( lua_State L,
StkId  func,
int  nResults,
int  inc 
)
static
函数调用图:
这是这个函数的调用关系图:

◆ checkmode()

static void checkmode ( lua_State L,
const char *  mode,
const char *  x 
)
static
函数调用图:
这是这个函数的调用关系图:

◆ correctstack()

static void correctstack ( lua_State L,
StkId  oldstack,
StkId  newstack 
)
static
这是这个函数的调用关系图:

◆ f_parser()

static void f_parser ( lua_State L,
void *  ud 
)
static
函数调用图:
这是这个函数的调用关系图:

◆ findpcall()

static CallInfo* findpcall ( lua_State L)
static
这是这个函数的调用关系图:

◆ finishCcall()

static void finishCcall ( lua_State L,
int  status 
)
static
函数调用图:
这是这个函数的调用关系图:

◆ lua_isyieldable()

LUA_API int lua_isyieldable ( lua_State L)
这是这个函数的调用关系图:

◆ lua_resume()

LUA_API int lua_resume ( lua_State L,
lua_State from,
int  nargs,
int *  nresults 
)
函数调用图:
这是这个函数的调用关系图:

◆ lua_yieldk()

LUA_API int lua_yieldk ( lua_State L,
int  nresults,
lua_KContext  ctx,
lua_KFunction  k 
)
函数调用图:

◆ luaD_call()

void luaD_call ( lua_State L,
StkId  func,
int  nResults 
)
函数调用图:
这是这个函数的调用关系图:

◆ luaD_callnoyield()

void luaD_callnoyield ( lua_State L,
StkId  func,
int  nResults 
)
函数调用图:
这是这个函数的调用关系图:

◆ luaD_growstack()

int luaD_growstack ( lua_State L,
int  n,
int  raiseerror 
)
函数调用图:
这是这个函数的调用关系图:

◆ luaD_hook()

void luaD_hook ( lua_State L,
int  event,
int  line,
int  ftransfer,
int  ntransfer 
)
这是这个函数的调用关系图:

◆ luaD_hookcall()

void luaD_hookcall ( lua_State L,
CallInfo ci 
)
函数调用图:
这是这个函数的调用关系图:

◆ luaD_inctop()

void luaD_inctop ( lua_State L)
这是这个函数的调用关系图:

◆ luaD_pcall()

int luaD_pcall ( lua_State L,
Pfunc  func,
void *  u,
ptrdiff_t  old_top,
ptrdiff_t  ef 
)
函数调用图:
这是这个函数的调用关系图:

◆ luaD_poscall()

void luaD_poscall ( lua_State L,
CallInfo ci,
int  nres 
)
函数调用图:
这是这个函数的调用关系图:

◆ luaD_precall()

CallInfo* luaD_precall ( lua_State L,
StkId  func,
int  nresults 
)
函数调用图:
这是这个函数的调用关系图:

◆ luaD_pretailcall()

void luaD_pretailcall ( lua_State L,
CallInfo ci,
StkId  func,
int  narg1 
)
这是这个函数的调用关系图:

◆ luaD_protectedparser()

int luaD_protectedparser ( lua_State L,
ZIO z,
const char *  name,
const char *  mode 
)
函数调用图:
这是这个函数的调用关系图:

◆ luaD_rawrunprotected()

int luaD_rawrunprotected ( lua_State L,
Pfunc  f,
void *  ud 
)
这是这个函数的调用关系图:

◆ luaD_reallocstack()

int luaD_reallocstack ( lua_State L,
int  newsize,
int  raiseerror 
)
函数调用图:
这是这个函数的调用关系图:

◆ luaD_seterrorobj()

void luaD_seterrorobj ( lua_State L,
int  errcode,
StkId  oldtop 
)
这是这个函数的调用关系图:

◆ luaD_shrinkstack()

void luaD_shrinkstack ( lua_State L)
函数调用图:
这是这个函数的调用关系图:

◆ luaD_throw()

l_noret luaD_throw ( lua_State L,
int  errcode 
)
函数调用图:
这是这个函数的调用关系图:

◆ luaD_tryfuncTM()

void luaD_tryfuncTM ( lua_State L,
StkId  func 
)
函数调用图:
这是这个函数的调用关系图:

◆ moveresults()

static void moveresults ( lua_State L,
StkId  res,
int  nres,
int  wanted 
)
static
函数调用图:
这是这个函数的调用关系图:

◆ recover()

static int recover ( lua_State L,
int  status 
)
static
函数调用图:
这是这个函数的调用关系图:

◆ resume()

static void resume ( lua_State L,
void *  ud 
)
static
函数调用图:
这是这个函数的调用关系图:

◆ resume_error()

static int resume_error ( lua_State L,
const char *  msg,
int  narg 
)
static
函数调用图:
这是这个函数的调用关系图:

◆ rethook()

static StkId rethook ( lua_State L,
CallInfo ci,
StkId  firstres,
int  nres 
)
static
函数调用图:
这是这个函数的调用关系图:

◆ stackinuse()

static int stackinuse ( lua_State L)
static
这是这个函数的调用关系图:

◆ unroll()

static void unroll ( lua_State L,
void *  ud 
)
static
函数调用图:
这是这个函数的调用关系图: