diff --git a/app/dns/lua.go b/app/dns/lua.go index 8185e7201..8466d1351 100644 --- a/app/dns/lua.go +++ b/app/dns/lua.go @@ -52,9 +52,9 @@ func luaServers(s *DNS) []luaDNSServer { func registerLua(L *lua.LState, servers []luaDNSServer, client featureDNS.Client) { L.PreloadModule("xray.dns", func(L *lua.LState) int { - serverList := L.NewTable() + serverList := L.CreateTable(len(servers), 0) for i, client := range servers { - server := L.NewTable() + server := L.CreateTable(0, 2) server.RawSetString("ID", lua.LString(client.id)) @@ -90,7 +90,7 @@ func registerLua(L *lua.LState, servers []luaDNSServer, client featureDNS.Client serverList.RawSetInt(i+1, server) } - module := L.NewTable() + module := L.CreateTable(0, 2) if servers != nil { module.RawSetString("Servers", serverList) } diff --git a/app/router/lua.go b/app/router/lua.go index 5bad76a48..e0ce0afb4 100644 --- a/app/router/lua.go +++ b/app/router/lua.go @@ -21,7 +21,7 @@ func (r *Router) RegisterLua(L *lua.LState) { registerLuaContext(L) L.PreloadModule("xray.router", func(L *lua.LState) int { - module := L.NewTable() + module := L.CreateTable(0, 7) module.RawSetString("NetworkUnknown", lua.LNumber(net.Network_Unknown)) module.RawSetString("NetworkTCP", lua.LNumber(net.Network_TCP)) @@ -73,7 +73,7 @@ func registerLuaContext(L *lua.LState) { } return 1 })) - methods := L.NewTable() + methods := L.CreateTable(0, 4) L.SetFuncs(methods, map[string]lua.LGFunction{ "GetSourceIPs": func(L *lua.LState) int { xlua.PushUserData(L, checkLuaContext(L).GetSourceIPs()) diff --git a/common/geodata/lua.go b/common/geodata/lua.go index f0b863d73..d76534962 100644 --- a/common/geodata/lua.go +++ b/common/geodata/lua.go @@ -23,7 +23,7 @@ var ( // RegisterLua makes xray.geodata available to require in an LState. func RegisterLua(L *lua.LState) { L.PreloadModule("xray.geodata", func(L *lua.LState) int { - module := L.NewTable() + module := L.CreateTable(0, 2) module.RawSetString("BuildDomainMatcher", L.NewFunction(func(L *lua.LState) int { parsed, err := ParseDomainRules(luaRules(L), Domain_Domain) diff --git a/common/log/lua.go b/common/log/lua.go index 50d89030a..99db47baf 100644 --- a/common/log/lua.go +++ b/common/log/lua.go @@ -10,7 +10,7 @@ import ( // RegisterLua makes xray.log available to require in an LState. func RegisterLua(L *lua.LState) { L.PreloadModule("xray.log", func(L *lua.LState) int { - module := L.NewTable() + module := L.CreateTable(0, 4) var source, prefix string // cache for name, severity := range map[string]Severity{ "Debug": Severity_Debug,