Skip to content

Commit

Permalink
Showing 2 changed files with 17 additions and 3 deletions.
6 changes: 5 additions & 1 deletion truffle/src/main/java/org/jruby/truffle/RubyLanguage.java
Original file line number Diff line number Diff line change
@@ -16,6 +16,7 @@
import com.oracle.truffle.api.instrument.Visualizer;
import com.oracle.truffle.api.instrument.WrapperNode;
import com.oracle.truffle.api.instrumentation.ProvidedTags;
import com.oracle.truffle.api.instrumentation.StandardTags;
import com.oracle.truffle.api.nodes.Node;
import com.oracle.truffle.api.source.Source;
import org.jruby.Ruby;
@@ -39,7 +40,10 @@
AttachmentsManager.LineTag.class,
TraceManager.CallTag.class,
TraceManager.ClassTag.class,
TraceManager.LineTag.class
TraceManager.LineTag.class,
StandardTags.RootTag.class,
StandardTags.StatementTag.class,
StandardTags.CallTag.class
})
public class RubyLanguage extends TruffleLanguage<RubyContext> {

14 changes: 12 additions & 2 deletions truffle/src/main/java/org/jruby/truffle/language/RubyNode.java
Original file line number Diff line number Diff line change
@@ -14,6 +14,7 @@
import com.oracle.truffle.api.dsl.TypeSystemReference;
import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.instrumentation.Instrumentable;
import com.oracle.truffle.api.instrumentation.StandardTags;
import com.oracle.truffle.api.nodes.Node;
import com.oracle.truffle.api.nodes.UnexpectedResultException;
import com.oracle.truffle.api.object.DynamicObject;
@@ -244,17 +245,26 @@ private boolean isCall() {
return ((flags >> FLAG_CALL) & 1) == 1;
}

private boolean isRoot() {
return getParent() instanceof RubyRootNode;
}

@Override
protected boolean isTaggedWith(Class<?> tag) {
if (tag == TraceManager.CallTag.class) {
if (tag == TraceManager.CallTag.class || tag == StandardTags.CallTag.class) {
return isCall();
}

if (tag == AttachmentsManager.LineTag.class
|| tag == TraceManager.LineTag.class
|| tag == CoverageManager.LineTag.class) {
|| tag == CoverageManager.LineTag.class
|| tag == StandardTags.StatementTag.class) {
return isNewLine();
}

if (tag == StandardTags.RootTag.class) {
return isRoot();
}

return false;
}

0 comments on commit 5279a6a

Please sign in to comment.