diff options
author | Mike Pall <mike> | 2025-03-09 14:44:57 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2025-03-09 14:44:57 +0100 |
commit | 5eb95094686bdadc89200679bdffb833e72ab89d (patch) | |
tree | 01421be85d1fab3b6cbf93f6a7e541dc4b960f02 /src/lj_tab.c | |
parent | a4f56a459a588ae768801074b46ba0adcfb49eb1 (diff) | |
download | luajit-5eb95094686bdadc89200679bdffb833e72ab89d.tar.gz luajit-5eb95094686bdadc89200679bdffb833e72ab89d.tar.bz2 luajit-5eb95094686bdadc89200679bdffb833e72ab89d.zip |
Change handling of nil value markers in template tables.
Reported by Bernhard M. Wiedemann. #1348 #1155
Diffstat (limited to 'src/lj_tab.c')
-rw-r--r-- | src/lj_tab.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/lj_tab.c b/src/lj_tab.c index 2d080552..62e33611 100644 --- a/src/lj_tab.c +++ b/src/lj_tab.c | |||
@@ -194,6 +194,7 @@ GCtab * LJ_FASTCALL lj_tab_dup(lua_State *L, const GCtab *kt) | |||
194 | Node *next = nextnode(kn); | 194 | Node *next = nextnode(kn); |
195 | /* Don't use copyTV here, since it asserts on a copy of a dead key. */ | 195 | /* Don't use copyTV here, since it asserts on a copy of a dead key. */ |
196 | n->val = kn->val; n->key = kn->key; | 196 | n->val = kn->val; n->key = kn->key; |
197 | if (tvistab(&n->val)) setnilV(&n->val); /* Replace nil value marker. */ | ||
197 | setmref(n->next, next == NULL? next : (Node *)((char *)next + d)); | 198 | setmref(n->next, next == NULL? next : (Node *)((char *)next + d)); |
198 | } | 199 | } |
199 | } | 200 | } |