From bba4cf9a9961e1896f4a56c80f67e993a89e3042 Mon Sep 17 00:00:00 2001 From: James Roseborough Date: Tue, 22 Apr 2008 04:52:24 +0000 Subject: [PATCH] Reconcile C & Java typechecking on table.concat() and string .. concat operator --- src/core/org/luaj/lib/TableLib.java | 27 +++++++++------------------ src/core/org/luaj/vm/LNumber.java | 7 +++++++ src/core/org/luaj/vm/LString.java | 21 ++++----------------- src/core/org/luaj/vm/LValue.java | 7 +++++++ src/core/org/luaj/vm/LuaState.java | 8 +++----- src/test/res/errors.lua | 27 +++++++++++++++++++++++++++ version.properties | 2 +- 7 files changed, 58 insertions(+), 41 deletions(-) diff --git a/src/core/org/luaj/lib/TableLib.java b/src/core/org/luaj/lib/TableLib.java index c30a28be..99d0366a 100644 --- a/src/core/org/luaj/lib/TableLib.java +++ b/src/core/org/luaj/lib/TableLib.java @@ -98,26 +98,17 @@ public class TableLib extends LFunction { int n = vm.gettop(); LTable table = vm.totable(2); LString sep = (n>=3? vm.tolstring(3): null); - int i = vm.tointeger(4); - int j = vm.tointeger(5); - int len = table.luaLength(); - if ( i == 0 ) - i = 1; - if ( j == 0 ) - j = len; + int i = (n>=4? vm.tointeger(4): 1); + int j = (n>=5? vm.tointeger(5): table.luaLength()); ByteArrayOutputStream baos = new ByteArrayOutputStream(); - try { - for ( int k=i; k<=j; k++ ) { - LValue v = table.get(k); - v.luaAsString().write(baos); - if ( k