Mercurial Hosting > luan
changeset 459:30544d1a9cbf
better stack overflow handling
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Wed, 06 May 2015 12:58:06 -0600 |
parents | 507c0af598ba |
children | b48cfa14ba60 |
files | core/src/luan/LuanBit.java core/src/luan/impl/LuanCompiler.java |
diffstat | 2 files changed, 2 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
diff -r 507c0af598ba -r 30544d1a9cbf core/src/luan/LuanBit.java --- a/core/src/luan/LuanBit.java Wed May 06 12:29:37 2015 -0600 +++ b/core/src/luan/LuanBit.java Wed May 06 12:58:06 2015 -0600 @@ -36,6 +36,8 @@ stackTrace.add( new StackTraceElement(el,fnName) ); try { return fn.call(luan,args); + } catch(StackOverflowError e) { + throw exception("stack overflow"); } finally { stackTrace.remove(stackTrace.size()-1); }
diff -r 507c0af598ba -r 30544d1a9cbf core/src/luan/impl/LuanCompiler.java --- a/core/src/luan/impl/LuanCompiler.java Wed May 06 12:29:37 2015 -0600 +++ b/core/src/luan/impl/LuanCompiler.java Wed May 06 12:58:06 2015 -0600 @@ -38,9 +38,6 @@ //e.printStackTrace(); LuanElement le = new LuanSource.CompilerElement(parser.source); throw luan.bit(le).exception( e.getFancyMessage() ); - } catch(StackOverflowError e) { - LuanElement le = new LuanSource.CompilerElement(parser.source); - throw luan.bit(le).exception("stack overflow"); } }