Skip to content

Commit 8beeece

Browse files
committed
Add Lua 5.5.0
1 parent 256ec4d commit 8beeece

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+30623
-8
lines changed

lua-5.5.0/lapi.c

Lines changed: 1473 additions & 0 deletions
Large diffs are not rendered by default.

lua-5.5.0/lapi.h

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
/*
2+
** $Id: lapi.h $
3+
** Auxiliary functions from Lua API
4+
** See Copyright Notice in lua.h
5+
*/
6+
7+
#ifndef lapi_h
8+
#define lapi_h
9+
10+
11+
#include "llimits.h"
12+
#include "lstate.h"
13+
14+
15+
#if defined(LUA_USE_APICHECK)
16+
#include <assert.h>
17+
#define api_check(l,e,msg) assert(e)
18+
#else /* for testing */
19+
#define api_check(l,e,msg) ((void)(l), lua_assert((e) && msg))
20+
#endif
21+
22+
23+
24+
/* Increments 'L->top.p', checking for stack overflows */
25+
#define api_incr_top(L) \
26+
(L->top.p++, api_check(L, L->top.p <= L->ci->top.p, "stack overflow"))
27+
28+
29+
/*
30+
** macros that are executed whenever program enters the Lua core
31+
** ('lua_lock') and leaves the core ('lua_unlock')
32+
*/
33+
#if !defined(lua_lock)
34+
#define lua_lock(L) ((void) 0)
35+
#define lua_unlock(L) ((void) 0)
36+
#endif
37+
38+
39+
40+
/*
41+
** If a call returns too many multiple returns, the callee may not have
42+
** stack space to accommodate all results. In this case, this macro
43+
** increases its stack space ('L->ci->top.p').
44+
*/
45+
#define adjustresults(L,nres) \
46+
{ if ((nres) <= LUA_MULTRET && L->ci->top.p < L->top.p) \
47+
L->ci->top.p = L->top.p; }
48+
49+
50+
/* Ensure the stack has at least 'n' elements */
51+
#define api_checknelems(L,n) \
52+
api_check(L, (n) < (L->top.p - L->ci->func.p), \
53+
"not enough elements in the stack")
54+
55+
56+
/* Ensure the stack has at least 'n' elements to be popped. (Some
57+
** functions only update a slot after checking it for popping, but that
58+
** is only an optimization for a pop followed by a push.)
59+
*/
60+
#define api_checkpop(L,n) \
61+
api_check(L, (n) < L->top.p - L->ci->func.p && \
62+
L->tbclist.p < L->top.p - (n), \
63+
"not enough free elements in the stack")
64+
65+
#endif

0 commit comments

Comments
 (0)