aboutsummaryrefslogtreecommitdiff
path: root/lstate.h
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2012-06-08 12:14:04 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2012-06-08 12:14:04 -0300
commitcc2a60ecb7e4c57ed31e5c5c3f49d8dc7447acc5 (patch)
treebd702ddf14ba4e1b57959bf978ec062f03ad861f /lstate.h
parent43bfb60ac8add40a6099b933bc8454c11471c386 (diff)
downloadlua-cc2a60ecb7e4c57ed31e5c5c3f49d8dc7447acc5.tar.gz
lua-cc2a60ecb7e4c57ed31e5c5c3f49d8dc7447acc5.tar.bz2
lua-cc2a60ecb7e4c57ed31e5c5c3f49d8dc7447acc5.zip
bugs in yields inside debug hooks
Diffstat (limited to 'lstate.h')
-rw-r--r--lstate.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/lstate.h b/lstate.h
index 665cf160..5c6bd67b 100644
--- a/lstate.h
+++ b/lstate.h
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lstate.h,v 2.79 2012/05/22 17:32:25 roberto Exp roberto $ 2** $Id: lstate.h,v 2.80 2012/05/22 17:50:39 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*/
@@ -72,6 +72,7 @@ typedef struct CallInfo {
72 struct CallInfo *previous, *next; /* dynamic call link */ 72 struct CallInfo *previous, *next; /* dynamic call link */
73 short nresults; /* expected number of results from this function */ 73 short nresults; /* expected number of results from this function */
74 lu_byte callstatus; 74 lu_byte callstatus;
75 ptrdiff_t extra;
75 union { 76 union {
76 struct { /* only for Lua functions */ 77 struct { /* only for Lua functions */
77 StkId base; /* base for this function */ 78 StkId base; /* base for this function */
@@ -81,7 +82,6 @@ typedef struct CallInfo {
81 int ctx; /* context info. in case of yields */ 82 int ctx; /* context info. in case of yields */
82 lua_CFunction k; /* continuation in case of yields */ 83 lua_CFunction k; /* continuation in case of yields */
83 ptrdiff_t old_errfunc; 84 ptrdiff_t old_errfunc;
84 ptrdiff_t extra;
85 lu_byte old_allowhook; 85 lu_byte old_allowhook;
86 lu_byte status; 86 lu_byte status;
87 } c; 87 } c;
@@ -100,6 +100,7 @@ typedef struct CallInfo {
100#define CIST_YPCALL (1<<4) /* call is a yieldable protected call */ 100#define CIST_YPCALL (1<<4) /* call is a yieldable protected call */
101#define CIST_STAT (1<<5) /* call has an error status (pcall) */ 101#define CIST_STAT (1<<5) /* call has an error status (pcall) */
102#define CIST_TAIL (1<<6) /* call was tail called */ 102#define CIST_TAIL (1<<6) /* call was tail called */
103#define CIST_HOOKYIELD (1<<7) /* last hook called yielded */
103 104
104 105
105#define isLua(ci) ((ci)->callstatus & CIST_LUA) 106#define isLua(ci) ((ci)->callstatus & CIST_LUA)