comparison core/src/luan/LuanBit.java @ 459:30544d1a9cbf

better stack overflow handling
author Franklin Schmidt <fschmidt@gmail.com>
date Wed, 06 May 2015 12:58:06 -0600
parents bbad2d06f728
children b48cfa14ba60
comparison
equal deleted inserted replaced
458:507c0af598ba 459:30544d1a9cbf
34 public Object call(LuanFunction fn,String fnName,Object[] args) throws LuanException { 34 public Object call(LuanFunction fn,String fnName,Object[] args) throws LuanException {
35 List<StackTraceElement> stackTrace = luan.stackTrace; 35 List<StackTraceElement> stackTrace = luan.stackTrace;
36 stackTrace.add( new StackTraceElement(el,fnName) ); 36 stackTrace.add( new StackTraceElement(el,fnName) );
37 try { 37 try {
38 return fn.call(luan,args); 38 return fn.call(luan,args);
39 } catch(StackOverflowError e) {
40 throw exception("stack overflow");
39 } finally { 41 } finally {
40 stackTrace.remove(stackTrace.size()-1); 42 stackTrace.remove(stackTrace.size()-1);
41 } 43 }
42 } 44 }
43 45