more fields moved out of 'CallInfo'

This commit is contained in:
Roberto Ierusalimschy
2017-11-03 10:12:30 -02:00
parent ba36180fd7
commit 54eb35a8aa
11 changed files with 152 additions and 127 deletions

View File

@@ -1,5 +1,5 @@
/*
** $Id: lobject.h,v 2.125 2017/06/29 15:06:44 roberto Exp roberto $
** $Id: lobject.h,v 2.126 2017/10/31 17:54:35 roberto Exp roberto $
** Type definitions for Lua objects
** See Copyright Notice in lua.h
*/
@@ -313,10 +313,21 @@ typedef union StackValue {
TValue val;
struct {
TValuefields;
lu_byte callstatus_;
unsigned short previous; /* difference to previous 'func' */
short nresults; /* expected number of results from this function */
unsigned short framesize; /* stack space available for this function */
} stkci;
} StackValue;
#define callstatus(ar) ((ar)->stkci.callstatus_)
/* top of a function (first element after its frame) */
#define functop(func) ((func) + (func)->stkci.framesize)
/* set top of a function to a specific value */
#define setfunctop(func,v) ((func)->stkci.framesize = (v) - (func))
typedef StackValue *StkId; /* index to stack elements */