diff --git a/src/core/org/luaj/vm2/LuaValue.java b/src/core/org/luaj/vm2/LuaValue.java index c787dbb6..b551d74e 100644 --- a/src/core/org/luaj/vm2/LuaValue.java +++ b/src/core/org/luaj/vm2/LuaValue.java @@ -21,6 +21,8 @@ ******************************************************************************/ package org.luaj.vm2; +import org.luaj.vm2.Varargs; + /** * Base class for all concrete lua type values. *

@@ -3405,8 +3407,12 @@ public class LuaValue extends Varargs { public static Varargs varargsOf(final LuaValue[] v,Varargs r) { switch ( v.length ) { case 0: return r; - case 1: return r.narg()>0? new Varargs.PairVarargs(v[0],r): v[0]; - case 2: return r.narg()>0? new Varargs.ArrayVarargs(v,r): new Varargs.PairVarargs(v[0],v[1]); + case 1: return r.narg()>0? + (Varargs) new Varargs.PairVarargs(v[0],r): + (Varargs) v[0]; + case 2: return r.narg()>0? + (Varargs) new Varargs.ArrayVarargs(v,r): + (Varargs) new Varargs.PairVarargs(v[0],v[1]); default: return new Varargs.ArrayVarargs(v,r); } } @@ -3445,8 +3451,12 @@ public class LuaValue extends Varargs { public static Varargs varargsOf(final LuaValue[] v, final int offset, final int length, Varargs more) { switch ( length ) { case 0: return more; - case 1: return more.narg()>0? new Varargs.PairVarargs(v[offset],more): v[offset]; - case 2: return more.narg()>0? new Varargs.ArrayPartVarargs(v,offset,length,more): new Varargs.PairVarargs(v[offset],v[offset+1]); + case 1: return more.narg()>0? + (Varargs) new Varargs.PairVarargs(v[offset],more): + (Varargs) v[offset]; + case 2: return more.narg()>0? + (Varargs) new Varargs.ArrayPartVarargs(v,offset,length,more): + (Varargs) new Varargs.PairVarargs(v[offset],v[offset+1]); default: return new Varargs.ArrayPartVarargs(v,offset,length,more); } } diff --git a/src/core/org/luaj/vm2/Varargs.java b/src/core/org/luaj/vm2/Varargs.java index c1d932a1..a87859c2 100644 --- a/src/core/org/luaj/vm2/Varargs.java +++ b/src/core/org/luaj/vm2/Varargs.java @@ -688,7 +688,7 @@ public abstract class Varargs { return LuaValue.varargsOf(v, offset + start - 1, length - (start - 1), more); } void copyto(LuaValue[] dest, int offset, int length) { - int n = Math.min(this.v.length, length); + int n = Math.min(this.length, length); System.arraycopy(this.v, this.offset, dest, offset, n); more.copyto(dest, offset + n, length - n); }