CallInfo bit CIST_CLSRET broken in two

Since commit f407b3c4a, it was being used for two distinct (and
incompatible) meanings:
A: Function has TBC variables (now bit CIST_TBC)
B: Interpreter is closing TBC variables (original bit CIST_CLSRET)

B implies A, but A does not imply B.
This commit is contained in:
Roberto Ierusalimschy
2025-01-28 11:45:45 -03:00
parent c4e7cdb541
commit 39a14ea7d7
4 changed files with 44 additions and 15 deletions

View File

@@ -235,8 +235,10 @@ struct CallInfo {
#define CIST_FRESH cast(l_uint32, CIST_C << 1)
/* function is closing tbc variables */
#define CIST_CLSRET (CIST_FRESH << 1)
/* function has tbc variables to close */
#define CIST_TBC (CIST_CLSRET << 1)
/* original value of 'allowhook' */
#define CIST_OAH (CIST_CLSRET << 1)
#define CIST_OAH (CIST_TBC << 1)
/* call is running a debug hook */
#define CIST_HOOKED (CIST_OAH << 1)
/* doing a yieldable protected call */