Mercurial > hg > graal-compiler
changeset 13734:7bab96d62fa3
Ruby: improve how instrumentation proxy handles some exceptional conditions
author | Michael Van De Vanter <michael.van.de.vanter@oracle.com> |
---|---|
date | Wed, 22 Jan 2014 20:35:00 -0800 |
parents | 4d47e9c0df23 |
children | 2c1c805153e6 |
files | graal/com.oracle.truffle.ruby.nodes/src/com/oracle/truffle/ruby/nodes/debug/RubyProxyNode.java |
diffstat | 1 files changed, 17 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.ruby.nodes/src/com/oracle/truffle/ruby/nodes/debug/RubyProxyNode.java Wed Jan 22 20:28:52 2014 -0800 +++ b/graal/com.oracle.truffle.ruby.nodes/src/com/oracle/truffle/ruby/nodes/debug/RubyProxyNode.java Wed Jan 22 20:35:00 2014 -0800 @@ -19,6 +19,7 @@ import com.oracle.truffle.api.nodes.instrument.InstrumentationProbeNode.ProbeChain; import com.oracle.truffle.ruby.nodes.*; import com.oracle.truffle.ruby.runtime.*; +import com.oracle.truffle.ruby.runtime.control.*; import com.oracle.truffle.ruby.runtime.core.*; import com.oracle.truffle.ruby.runtime.core.array.*; @@ -69,6 +70,8 @@ try { result = child.execute(frame); probeChain.notifyLeave(child, frame, result); + } catch (BreakShellException e) { + throw (e); } catch (Exception e) { probeChain.notifyLeaveExceptional(child, frame, e); throw (e); @@ -86,6 +89,8 @@ try { result = child.executeArray(frame); probeChain.notifyLeave(child, frame, result); + } catch (BreakShellException e) { + throw (e); } catch (Exception e) { probeChain.notifyLeaveExceptional(child, frame, e); throw (e); @@ -103,6 +108,8 @@ try { result = child.executeBignum(frame); probeChain.notifyLeave(child, frame, result); + } catch (BreakShellException e) { + throw (e); } catch (Exception e) { probeChain.notifyLeaveExceptional(child, frame, e); throw (e); @@ -120,6 +127,8 @@ try { result = child.executeBoolean(frame); probeChain.notifyLeave(child, frame, result); + } catch (BreakShellException e) { + throw (e); } catch (Exception e) { probeChain.notifyLeaveExceptional(child, frame, e); throw (e); @@ -142,6 +151,8 @@ try { result = child.executeFixnum(frame); probeChain.notifyLeave(child, frame, result); + } catch (BreakShellException e) { + throw (e); } catch (Exception e) { probeChain.notifyLeaveExceptional(child, frame, e); throw (e); @@ -159,6 +170,8 @@ try { result = child.executeFloat(frame); probeChain.notifyLeave(child, frame, result); + } catch (BreakShellException e) { + throw (e); } catch (Exception e) { probeChain.notifyLeaveExceptional(child, frame, e); throw (e); @@ -176,6 +189,8 @@ try { result = child.executeString(frame); probeChain.notifyLeave(child, frame, result); + } catch (BreakShellException e) { + throw (e); } catch (Exception e) { probeChain.notifyLeaveExceptional(child, frame, e); throw (e); @@ -191,6 +206,8 @@ try { child.executeVoid(frame); probeChain.notifyLeave(child, frame); + } catch (BreakShellException e) { + throw (e); } catch (Exception e) { probeChain.notifyLeaveExceptional(child, frame, e); throw (e);