comparison src/luan/impl/LuanParser.java @ 1330:f41919741100

fix security
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 11 Feb 2019 01:38:55 -0700
parents 9fa8b8389578
children 25746915a241
comparison
equal deleted inserted replaced
1329:5a39b006acd1 1330:f41919741100
2007 private String toFnString(Stmts stmts,List<UpSym> upValueSymbols,String className) { 2007 private String toFnString(Stmts stmts,List<UpSym> upValueSymbols,String className) {
2008 if( !stmts.hasReturn ) 2008 if( !stmts.hasReturn )
2009 stmts.add( "\nreturn LuanFunction.NOTHING;" ); 2009 stmts.add( "\nreturn LuanFunction.NOTHING;" );
2010 return "" 2010 return ""
2011 +"package luan.impl; " 2011 +"package luan.impl; "
2012 +"import luan.LuanClosure; "
2012 +"import luan.Luan; " 2013 +"import luan.Luan; "
2013 +"import luan.LuanFunction; " 2014 +"import luan.LuanFunction; "
2014 +"import luan.LuanState; " 2015 +"import luan.LuanState; "
2015 +"import luan.LuanJavaOk; "
2016 +"import luan.LuanException; " 2016 +"import luan.LuanException; "
2017 +"import luan.modules.PackageLuan; " 2017 +"import luan.modules.PackageLuan; "
2018 2018
2019 +"public class " + className +" extends Closure { " 2019 +"public class " + className +" extends LuanClosure { "
2020 +"public "+className+"(LuanJavaOk java) throws LuanException { " 2020 +"public "+className+"(boolean javaOk,String sourceName) throws LuanException { "
2021 +"super("+upValueSymbols.size()+",java); " 2021 +"super("+upValueSymbols.size()+",javaOk,sourceName); "
2022 + init(upValueSymbols) 2022 + init(upValueSymbols)
2023 +"} " 2023 +"} "
2024 2024
2025 +"@Override public Object doCall(LuanState luan,Object[] args) throws LuanException { " 2025 +"@Override public Object doCall(LuanState luan,Object[] args) throws LuanException { "
2026 +"final Pointer[] parentUpValues = upValues; " 2026 +"final Pointer[] parentUpValues = upValues; "
2036 stmt.addNewLines(); 2036 stmt.addNewLines();
2037 if( !stmt.hasReturn ) 2037 if( !stmt.hasReturn )
2038 stmt.add( "return LuanFunction.NOTHING; " ); 2038 stmt.add( "return LuanFunction.NOTHING; " );
2039 Expr exp = new Expr(Val.SINGLE,false); 2039 Expr exp = new Expr(Val.SINGLE,false);
2040 exp.add( "" 2040 exp.add( ""
2041 +"new Closure("+upValueSymbols.size()+",javaOk) { " 2041 +"new LuanClosure("+upValueSymbols.size()+",javaOk,sourceName) { "
2042 +"{ " 2042 +"{ "
2043 + init(upValueSymbols) 2043 + init(upValueSymbols)
2044 +"} " 2044 +"} "
2045 +"@Override public Object doCall(LuanState luan,Object[] args) throws LuanException { " 2045 +"@Override public Object doCall(LuanState luan,Object[] args) throws LuanException { "
2046 ); 2046 );