From 05cfdaa33b7bc7e7a0c27816f1e808d68dd33947 Mon Sep 17 00:00:00 2001 From: James Roseborough Date: Mon, 11 Jun 2007 04:30:03 +0000 Subject: [PATCH] Improve calling convention handling when the number of arguments doesn't match the expected number, and the number of return values doesn't match those needed. --- src/main/java/lua/Builtin.java | 8 +++--- src/main/java/lua/io/Closure.java | 5 ++-- src/main/java/lua/value/LTable.java | 7 +++-- src/main/java/lua/value/LValue.java | 5 ++-- src/test/res/compile.sh | 2 +- src/test/res/test3.lua | 40 +++++++++++++++++++++++++--- src/test/res/test3.luac | Bin 283 -> 629 bytes 7 files changed, 52 insertions(+), 15 deletions(-) diff --git a/src/main/java/lua/Builtin.java b/src/main/java/lua/Builtin.java index 1ebd522c..1aea5ae6 100644 --- a/src/main/java/lua/Builtin.java +++ b/src/main/java/lua/Builtin.java @@ -4,6 +4,7 @@ package lua; import lua.value.LFunction; +import lua.value.LNil; import lua.value.LString; import lua.value.LTable; import lua.value.LValue; @@ -30,7 +31,7 @@ final class Builtin extends LFunction { } // perform a lua call - public void luaStackCall(StackState state, int base, int nargs) { + public int luaStackCall(StackState state, int base, int nargs) { switch ( id ) { case PRINT: for ( int i=0; i^LJAu(Y4-{hK?{4E7$OJ~MDO~&B5&ctWDDOS4?y*&`%`(8CFUSS>!Q%Zs;q#>B$)hD24DDk5;ru}MH)10sSa zzzyghYEh7rK=R+(ifc0*q;x17hpz@uDc$Sw(Xeowf|Gx GZWll4wk(eT literal 283 zcmb34DNPJyU}Rxo;b7oqU|?`4Ni8lh*2^hP1ae@2iA4;^WOZO*aBN^;Xgt8caFBtK zL8gI$i5(^mVZe6WWy7#yGs4hN7p$UTfWFvuuu7-Rr37^n;k0D?Oi8UO$Q