diff --git a/iolib.go b/iolib.go index 65404f12..b0c2f569 100644 --- a/iolib.go +++ b/iolib.go @@ -372,7 +372,7 @@ func fileReadAux(L *LState, file *lFile, idx int) int { var buf []byte buf, err = ioutil.ReadAll(file.reader) if err == io.EOF { - L.Push(LString("")) + L.Push(emptyLString) goto normalreturn } if err != nil { diff --git a/loadlib.go b/loadlib.go index dc67e20d..772bb04a 100644 --- a/loadlib.go +++ b/loadlib.go @@ -63,7 +63,7 @@ func OpenPackage(L *LState) int { L.SetField(L.Get(RegistryIndex), "_LOADED", loaded) L.SetField(packagemod, "path", LString(loGetPath(LuaPath, LuaPathDefault))) - L.SetField(packagemod, "cpath", LString("")) + L.SetField(packagemod, "cpath", emptyLString) L.Push(packagemod) return 1 diff --git a/stringlib.go b/stringlib.go index ad9dcb76..f484c2b3 100644 --- a/stringlib.go +++ b/stringlib.go @@ -7,6 +7,8 @@ import ( "github.com/yuin/gopher-lua/pm" ) +const emptyLString LString = LString("") + func OpenString(L *LState) int { var mod *LTable //_, ok := L.G.builtinMts[int(LTString)] @@ -391,7 +393,7 @@ func strRep(L *LState) int { str := L.CheckString(1) n := L.CheckInt(2) if n < 0 { - L.Push(LString("")) + L.Push(emptyLString) } else { L.Push(LString(strings.Repeat(str, n))) } @@ -415,7 +417,7 @@ func strSub(L *LState) int { end := luaIndex2StringIndex(str, L.OptInt(3, -1), false) l := len(str) if start >= l || end < start { - L.Push(LString("")) + L.Push(emptyLString) } else { L.Push(LString(str[start:end])) } diff --git a/tablelib.go b/tablelib.go index 7ada2474..f3f46070 100644 --- a/tablelib.go +++ b/tablelib.go @@ -56,14 +56,14 @@ func tableConcat(L *LState) int { j := L.OptInt(4, tbl.Len()) if L.GetTop() == 3 { if i > tbl.Len() || i < 1 { - L.Push(LString("")) + L.Push(emptyLString) return 1 } } i = intMax(intMin(i, tbl.Len()), 1) j = intMin(intMin(j, tbl.Len()), tbl.Len()) if i > j { - L.Push(LString("")) + L.Push(emptyLString) return 1 } //TODO should flushing?