comparison src/luan/interp/SetStmt.java @ 13:3b22ffbdb83a

minor git-svn-id: https://luan-java.googlecode.com/svn/trunk@14 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Fri, 23 Nov 2012 13:04:03 +0000
parents b7d7069fee58
children 09d41f7490a8
comparison
equal deleted inserted replaced
12:9cea1aea5eef 13:3b22ffbdb83a
26 this.vars = vars; 26 this.vars = vars;
27 this.expressions = expressions; 27 this.expressions = expressions;
28 } 28 }
29 29
30 @Override public void eval(LuaState lua) throws LuaException { 30 @Override public void eval(LuaState lua) throws LuaException {
31 List vals = expressions.eval(lua); 31 final Object[] vals = expressions.eval(lua);
32 int n = vals.size();
33 for( int i=0; i<vars.length; i++ ) { 32 for( int i=0; i<vars.length; i++ ) {
34 Var var = vars[i]; 33 Var var = vars[i];
35 Object t = var.table.eval(lua); 34 Object t = var.table.eval(lua);
36 if( !(t instanceof LuaTable) ) 35 if( !(t instanceof LuaTable) )
37 throw new LuaException( "attempt to index a " + Lua.type(t) + " value" ); 36 throw new LuaException( "attempt to index a " + Lua.type(t) + " value" );
38 LuaTable tbl = (LuaTable)t; 37 LuaTable tbl = (LuaTable)t;
39 Object key = var.key.eval(lua); 38 Object key = var.key.eval(lua);
40 Object val = i < n ? vals.get(i) : null; 39 Object val = i < vals.length ? vals[i] : null;
41 tbl.set(key,val); 40 tbl.set(key,val);
42 } 41 }
43 } 42 }
44 43
45 } 44 }