From 58bd4012506e6dfc92dd819d4e43acad18e8b914 Mon Sep 17 00:00:00 2001 From: daurnimator Date: Thu, 27 Apr 2017 17:58:58 +1000 Subject: lua_State shouldn't subclass TValue --- src/lapi.js | 2 +- src/lobject.js | 1 + src/lstate.js | 7 ++----- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/lapi.js b/src/lapi.js index 52bc8fa..a758a66 100644 --- a/src/lapi.js +++ b/src/lapi.js @@ -305,7 +305,7 @@ const lua_pushlightuserdata = function(L, p) { }; const lua_pushthread = function(L) { - L.stack[L.top++] = L; + L.stack[L.top++] = new TValue(CT.LUA_TTHREAD, L); assert(L.top <= L.ci.top, "stack overflow"); return L.l_G.mainthread === L; diff --git a/src/lobject.js b/src/lobject.js index f7d07d7..5a202d4 100644 --- a/src/lobject.js +++ b/src/lobject.js @@ -167,6 +167,7 @@ const table_keyValue = function(key) { if ([CT.LUA_TNIL, CT.LUA_TBOOLEAN, CT.LUA_TSTRING, + CT.LUA_TTHREAD, CT.LUA_TNUMINT].indexOf(key.type) > -1) { key = key.value; } else if ([CT.LUA_TSHRSTR, CT.LUA_TLNGSTR].indexOf(key.type) > -1) { diff --git a/src/lstate.js b/src/lstate.js index 1a4cbd5..349c723 100644 --- a/src/lstate.js +++ b/src/lstate.js @@ -41,10 +41,9 @@ class CallInfo { } -class lua_State extends lobject.TValue { +class lua_State { constructor() { - super(CT.LUA_TTHREAD, null); this.base_ci = new CallInfo(); // Will be populated later this.top = 0; this.ci = null; @@ -57,8 +56,6 @@ class lua_State extends lobject.TValue { this.errorJmp = null; this.nny = 1; this.errfunc = 0; - - this.value = this; } } @@ -147,7 +144,7 @@ const preinit_thread = function(L, g) { const lua_newthread = function(L) { let g = L.l_G; let L1 = new lua_State(); - L.stack[L.top++] = L1; + L.stack[L.top++] = new lobject.TValue(CT.LUA_TTHREAD, L1); assert(L.top <= L.ci.top, "stack overflow"); preinit_thread(L1, g); L1.hookmask = L.hookmask; -- cgit v1.2.3-70-g09d2