Mercurial Hosting > luan
comparison core/src/luan/modules/TableLuan.java @ 426:23a93c118042
fix LuanTable.get() to use metatables
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Fri, 01 May 2015 18:44:20 -0600 |
parents | 0a2fb80907f9 |
children | dae264ad6a7b |
comparison
equal
deleted
inserted
replaced
425:0a2fb80907f9 | 426:23a93c118042 |
---|---|
19 public static String concat(LuanState luan,LuanTable list,String sep,Integer i,Integer j) throws LuanException { | 19 public static String concat(LuanState luan,LuanTable list,String sep,Integer i,Integer j) throws LuanException { |
20 int first = i==null ? 1 : i; | 20 int first = i==null ? 1 : i; |
21 int last = j==null ? list.length() : j; | 21 int last = j==null ? list.length() : j; |
22 StringBuilder buf = new StringBuilder(); | 22 StringBuilder buf = new StringBuilder(); |
23 for( int k=first; k<=last; k++ ) { | 23 for( int k=first; k<=last; k++ ) { |
24 Object val = list.get(k); | 24 Object val = list.rawGet(k); |
25 if( val==null ) | 25 if( val==null ) |
26 break; | 26 break; |
27 if( sep!=null && k > first ) | 27 if( sep!=null && k > first ) |
28 buf.append(sep); | 28 buf.append(sep); |
29 String s = Luan.asString(val); | 29 String s = Luan.asString(val); |
100 @LuanMethod public static Object[] unpack(LuanTable tbl,Integer iFrom,Integer iTo) { | 100 @LuanMethod public static Object[] unpack(LuanTable tbl,Integer iFrom,Integer iTo) { |
101 int from = iFrom!=null ? iFrom : 1; | 101 int from = iFrom!=null ? iFrom : 1; |
102 int to = iTo!=null ? iTo : tbl.length(); | 102 int to = iTo!=null ? iTo : tbl.length(); |
103 List<Object> list = new ArrayList<Object>(); | 103 List<Object> list = new ArrayList<Object>(); |
104 for( int i=from; i<=to; i++ ) { | 104 for( int i=from; i<=to; i++ ) { |
105 list.add( tbl.get(i) ); | 105 list.add( tbl.rawGet(i) ); |
106 } | 106 } |
107 return list.toArray(); | 107 return list.toArray(); |
108 } | 108 } |
109 | 109 |
110 public static LuanTable sub_list(LuanTable list,int from,int to) { | 110 public static LuanTable sub_list(LuanTable list,int from,int to) { |