aboutsummaryrefslogtreecommitdiff
path: root/lstate.h
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2017-11-02 09:28:56 -0200
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2017-11-02 09:28:56 -0200
commitba36180fd7b68341ad57e0fbe7a55cdfb334908d (patch)
treec99f2d1335c90aad7015475e64cecbea889cefcc /lstate.h
parentb9e76be8a691ed83a716a85c6b85cb80f66cc480 (diff)
downloadlua-ba36180fd7b68341ad57e0fbe7a55cdfb334908d.tar.gz
lua-ba36180fd7b68341ad57e0fbe7a55cdfb334908d.tar.bz2
lua-ba36180fd7b68341ad57e0fbe7a55cdfb334908d.zip
new API for 'lua_resume' + cleaning the uses of the 'extra' field in
'CallInfo'
Diffstat (limited to 'lstate.h')
-rw-r--r--lstate.h13
1 files changed, 5 insertions, 8 deletions
diff --git a/lstate.h b/lstate.h
index 76ce110f..8b9eb606 100644
--- a/lstate.h
+++ b/lstate.h
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lstate.h,v 2.144 2017/07/27 13:50:16 roberto Exp roberto $ 2** $Id: lstate.h,v 2.145 2017/10/31 17:54:35 roberto Exp roberto $
3** Global State 3** Global State
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -83,12 +83,6 @@ typedef struct stringtable {
83 83
84/* 84/*
85** Information about a call. 85** Information about a call.
86** When a thread yields, 'func' is adjusted to pretend that the
87** top function has only the yielded values in its stack; in that
88** case, the actual 'func' value is saved in field 'extra'.
89** When a function calls another with a continuation, 'extra' keeps
90** the function index so that, in case of errors, the continuation
91** function can be called with the correct top.
92*/ 86*/
93typedef struct CallInfo { 87typedef struct CallInfo {
94 StkId func; /* function index in the stack */ 88 StkId func; /* function index in the stack */
@@ -104,7 +98,10 @@ typedef struct CallInfo {
104 lua_KContext ctx; /* context info. in case of yields */ 98 lua_KContext ctx; /* context info. in case of yields */
105 } c; 99 } c;
106 } u; 100 } u;
107 ptrdiff_t extra; 101 union {
102 ptrdiff_t funcidx; /* called-function index */
103 int nyield; /* number of values yielded */
104 } u2;
108 short nresults; /* expected number of results from this function */ 105 short nresults; /* expected number of results from this function */
109 unsigned short callstatus; 106 unsigned short callstatus;
110} CallInfo; 107} CallInfo;