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 } |