Fix luau_load 'env' argument to work with absolute stack index

This commit is contained in:
Petri Häkkinen 2021-12-01 11:03:22 +02:00
parent 35e497b533
commit 07a0e0e111

View file

@ -9,6 +9,7 @@
#include "lgc.h"
#include "lmem.h"
#include "lbytecode.h"
#include "lapi.h"
#include <string.h>
@ -162,9 +163,8 @@ int luau_load(lua_State* L, const char* chunkname, const char* data, size_t size
size_t GCthreshold = L->global->GCthreshold;
L->global->GCthreshold = SIZE_MAX;
// env is 0 for current environment and a stack relative index otherwise
LUAU_ASSERT(env <= 0 && L->top - L->base >= -env);
Table* envt = (env == 0) ? hvalue(gt(L)) : hvalue(L->top + env);
// env is 0 for current environment and a stack index otherwise
Table* envt = (env == 0) ? hvalue(gt(L)) : hvalue(luaA_toobject(L, env));
TString* source = luaS_new(L, chunkname);