Mercurial Hosting > luan
comparison src/luan/LuaState.java @ 24:7ee247560db5
add VarArgs
git-svn-id: https://luan-java.googlecode.com/svn/trunk@25 21e917c8-12df-6dd8-5cb6-c86387c605b9
| author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
|---|---|
| date | Thu, 06 Dec 2012 04:40:54 +0000 |
| parents | 1e37f22a34c8 |
| children | 5cf15507d77e |
comparison
equal
deleted
inserted
replaced
| 23:2446c1755d9b | 24:7ee247560db5 |
|---|---|
| 10 | 10 |
| 11 | 11 |
| 12 private static class LuaStack { | 12 private static class LuaStack { |
| 13 final LuaStack previousStack; | 13 final LuaStack previousStack; |
| 14 final Object[] a; | 14 final Object[] a; |
| 15 final Object[] varArgs; | |
| 15 | 16 |
| 16 LuaStack( LuaStack previousStack, int stackSize) { | 17 LuaStack( LuaStack previousStack, int stackSize, Object[] varArgs) { |
| 17 this.previousStack = previousStack; | 18 this.previousStack = previousStack; |
| 18 this.a = new Object[stackSize]; | 19 this.a = new Object[stackSize]; |
| 20 this.varArgs = varArgs; | |
| 19 } | 21 } |
| 20 } | 22 } |
| 21 | 23 |
| 22 private LuaStack stack = null; | 24 private LuaStack stack = null; |
| 23 public Object[] returnValues; | 25 public Object[] returnValues; |
| 24 public LuaClosure tailFn; | 26 public LuaClosure tailFn; |
| 25 | 27 |
| 26 Object[] newStack(int stackSize) { | 28 Object[] newStack(int stackSize, Object[] varArgs) { |
| 27 stack = new LuaStack(stack,stackSize); | 29 stack = new LuaStack(stack,stackSize,varArgs); |
| 28 return stack.a; | 30 return stack.a; |
| 29 } | 31 } |
| 30 | 32 |
| 31 void popStack() { | 33 void popStack() { |
| 32 returnValues = LuaFunction.EMPTY_RTN; | 34 returnValues = LuaFunction.EMPTY_RTN; |
| 36 | 38 |
| 37 public Object[] stack() { | 39 public Object[] stack() { |
| 38 return stack.a; | 40 return stack.a; |
| 39 } | 41 } |
| 40 | 42 |
| 43 public Object[] varArgs() { | |
| 44 return stack.varArgs; | |
| 45 } | |
| 41 } | 46 } |
