Mercurial Hosting > luan
diff core/src/luan/LuanJavaFunction.java @ 431:3ffe8ba5b297
TableLuan cleanup
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sat, 02 May 2015 21:12:48 -0600 |
parents | 1b38de2b1845 |
children | d9df6d6cb927 |
line wrap: on
line diff
--- a/core/src/luan/LuanJavaFunction.java Sat May 02 20:35:26 2015 -0600 +++ b/core/src/luan/LuanJavaFunction.java Sat May 02 21:12:48 2015 -0600 @@ -402,12 +402,24 @@ if( obj instanceof Map ) { @SuppressWarnings("unchecked") Map<Object,Object> map = (Map<Object,Object>)obj; - return new LuanTable(map); + LuanTable tbl = new LuanTable(); + for( Map.Entry<Object,Object> entry : map.entrySet() ) { + Object key = entry.getKey(); + Object value = entry.getValue(); + if( key != null && value != null ) + tbl.rawPut(key,value); + } + return tbl; } if( obj instanceof Set ) { @SuppressWarnings("unchecked") Set<Object> set = (Set<Object>)obj; - return new LuanTable(set); + LuanTable tbl = new LuanTable(); + for( Object el : set ) { + if( el != null ) + tbl.rawPut(el,Boolean.TRUE); + } + return tbl; } Class cls = obj.getClass(); if( cls.isArray() && !cls.getComponentType().isPrimitive() ) {