Mercurial Hosting > luan
diff src/luan/LuanTable.java @ 1420:225808b90cee
options handling
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sat, 26 Oct 2019 22:21:09 -0600 |
parents | 2024d23ddd64 |
children | 851b9a48cc44 |
line wrap: on
line diff
--- a/src/luan/LuanTable.java Fri Oct 25 22:12:06 2019 -0600 +++ b/src/luan/LuanTable.java Sat Oct 26 22:21:09 2019 -0600 @@ -224,15 +224,16 @@ } } } - if( map==null ) - map = newMap(); if( key instanceof Number && !(key instanceof Double) ) { Number n = (Number)key; key = Double.valueOf(n.doubleValue()); } if( val == null ) { - map.remove(key); + if( map!=null ) + map.remove(key); } else { + if( map==null ) + map = newMap(); map.put(key,val); } } @@ -278,7 +279,7 @@ mapToList(); } - public Object rawRemove(int pos) { + public Object removeFromList(int pos) { check(); return list().remove(pos-1); } @@ -506,7 +507,7 @@ return n; } - public boolean rawIsEmpty() { + public boolean isEmpty() { return (map==null || map.isEmpty()) && (list==null || list.isEmpty()); } @@ -519,6 +520,12 @@ return n; } + public Object remove(Object key) { + Object old = rawGet(key); + rawPut2(key,null); + return old; + } + protected void finalize() throws Throwable { Object h = getHandler("__gc"); if( h != null ) {