Mercurial Hosting > luan
diff src/luan/lib/PickleCon.java @ 146:0517a4a7fcc5
add Io.reverse_pickle
git-svn-id: https://luan-java.googlecode.com/svn/trunk@147 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Sun, 15 Jun 2014 13:35:33 +0000 |
parents | 0594c132888b |
children | cc3a0578edac |
line wrap: on
line diff
--- a/src/luan/lib/PickleCon.java Sun Jun 15 10:02:16 2014 +0000 +++ b/src/luan/lib/PickleCon.java Sun Jun 15 13:35:33 2014 +0000 @@ -23,7 +23,7 @@ final LuanState luan; private final DataInputStream in; private final LuanFunction _read_binary; - private final LuanTable ioModule; + final LuanTable ioModule; private final DataOutputStream out; private final List<byte[]> binaries = new ArrayList<byte[]>(); String src; @@ -57,11 +57,14 @@ public Object read() throws IOException, LuanException { ioModule.put("_read_binary",_read_binary); - src = in.readUTF(); - LuanFunction fn = BasicLib.load(luan,src,"pickle-reader",true,false); - Object rtn = luan.call(fn); - ioModule.put("_binaries",null); - return rtn; + try { + src = in.readUTF(); + LuanFunction fn = BasicLib.load(luan,src,"pickle-reader",true,false); + return luan.call(fn); + } finally { + ioModule.put("_binaries",null); + ioModule.put("_read_binary",null); + } } public String pickle(Object obj) throws LuanException {