Mercurial > hg > truffle
diff graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/SLStatementNode.java @ 18990:d1c1cd2530d7
Truffle/Instrumentation: clean up and repair some old unit tests
author | Michael Van De Vanter <michael.van.de.vanter@oracle.com> |
---|---|
date | Tue, 27 Jan 2015 20:28:43 -0800 |
parents | e3c95cbbb50c |
children | 3844fb65016c |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/SLStatementNode.java Tue Jan 27 20:28:19 2015 -0800 +++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/SLStatementNode.java Tue Jan 27 20:28:43 2015 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,8 +25,7 @@ import java.io.*; import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.instrument.*; -import com.oracle.truffle.api.instrument.ProbeNode.*; +import com.oracle.truffle.api.instrument.ProbeNode.WrapperNode; import com.oracle.truffle.api.nodes.*; import com.oracle.truffle.api.source.*; import com.oracle.truffle.sl.nodes.instrument.*; @@ -37,7 +36,7 @@ * local variables. */ @NodeInfo(language = "Simple Language", description = "The abstract base node for all statements") -public abstract class SLStatementNode extends Node implements Instrumentable { +public abstract class SLStatementNode extends Node { public SLStatementNode(SourceSection src) { super(src); @@ -86,44 +85,13 @@ } @Override - public Probe probe() { - Node parent = getParent(); - - if (parent == null) { - throw new IllegalStateException("Cannot call probe() on a node without a parent."); - } - - if (parent instanceof SLStatementWrapperNode) { - return ((SLStatementWrapperNode) parent).getProbe(); - } - - // Create a new wrapper/probe with this node as its child. - final SLStatementWrapperNode wrapper = new SLStatementWrapperNode(this); - - // Connect it to a Probe - final Probe probe = ProbeNode.insertProbe(wrapper); - - // Replace this node in the AST with the wrapper - this.replace(wrapper); - - return probe; + public boolean isInstrumentable() { + return true; } @Override - public void probeLite(TruffleEventReceiver eventReceiver) { - Node parent = getParent(); - - if (parent == null) { - throw new IllegalStateException("Cannot call probeLite() on a node without a parent"); - } + public WrapperNode createWrapperNode() { + return new SLStatementWrapperNode(this); + } - if (parent instanceof SLStatementWrapperNode) { - throw new IllegalStateException("Cannot call probeLite() on a node that already has a wrapper."); - } - - final SLStatementWrapperNode wrapper = new SLStatementWrapperNode(this); - ProbeNode.insertProbeLite(wrapper, eventReceiver); - - this.replace(wrapper); - } }