Mercurial Hosting > luan
diff src/luan/impl/Closure.java @ 1133:ba4daf107e07
fix security bug
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Wed, 17 Jan 2018 20:59:42 -0700 |
parents | c49980cdece6 |
children | 3ef883468fd0 |
line wrap: on
line diff
--- a/src/luan/impl/Closure.java Tue Jan 02 21:30:41 2018 -0700 +++ b/src/luan/impl/Closure.java Wed Jan 17 20:59:42 2018 -0700 @@ -6,17 +6,17 @@ import luan.LuanException; import luan.LuanCloner; import luan.LuanCloneable; -import luan.LuanJava; +import luan.LuanJavaOk; public abstract class Closure extends LuanFunction implements LuanCloneable, Cloneable { public Pointer[] upValues; - public LuanJava ljava; + public LuanJavaOk javaOk; private LuanCloner cloner; - public Closure(int nUpValues,LuanJava java) throws LuanException { + public Closure(int nUpValues,LuanJavaOk javaOk) throws LuanException { this.upValues = new Pointer[nUpValues]; - this.ljava = java; + this.javaOk = javaOk; } @Override public Closure shallowClone() { @@ -33,12 +33,12 @@ switch( cloner.type ) { case COMPLETE: clone.upValues = (Pointer[])cloner.clone(upValues); - clone.ljava = (LuanJava)cloner.clone(ljava); + clone.javaOk = (LuanJavaOk)cloner.clone(javaOk); return; case INCREMENTAL: clone.cloner = cloner; clone.upValues = upValues; - clone.ljava = ljava; + clone.javaOk = javaOk; return; } } @@ -46,7 +46,7 @@ private void check() { if( cloner != null ) { upValues = (Pointer[])cloner.clone(upValues); - ljava = (LuanJava)cloner.clone(ljava); + javaOk = (LuanJavaOk)cloner.clone(javaOk); cloner = null; } } @@ -55,14 +55,14 @@ if( luan.isLocked ) throw new RuntimeException("luan is locked"); check(); - LuanJava old = luan.java; - luan.java = ljava; + LuanJavaOk old = luan.javaOk; + luan.javaOk = javaOk; try { return doCall(luan,args); } catch(StackOverflowError e) { throw new LuanException( "stack overflow" ); } finally { - luan.java = old; + luan.javaOk = old; } }