From 7c9a5fbd585ad8079819f94bab2f0ea1cb5c9782 Mon Sep 17 00:00:00 2001
From: Florian Angerer <florian.angerer@oracle.com>
Date: Tue, 23 May 2017 18:03:14 +0200
Subject: [PATCH] Inserted check for FunctionDefinitionNode.

---
 .../r/nodes/builtin/helpers/DebugHandling.java        | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/helpers/DebugHandling.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/helpers/DebugHandling.java
index 75684febae..b50be670af 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/helpers/DebugHandling.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/helpers/DebugHandling.java
@@ -598,11 +598,14 @@ public class DebugHandling {
         public void onEnter(EventContext context, VirtualFrame frame) {
             if (!RContext.getInstance().stateInstrumentation.debugGloballyDisabled()) {
                 CompilerDirectives.transferToInterpreter();
-                FunctionDefinitionNode fdn = (FunctionDefinitionNode) context.getInstrumentedNode().getRootNode();
-                FunctionStatementsEventListener ensureSingleStep = ensureSingleStep(fdn);
+                RootNode rootNode = context.getInstrumentedNode().getRootNode();
+                if (rootNode instanceof FunctionDefinitionNode) {
+                    FunctionDefinitionNode fdn = (FunctionDefinitionNode) rootNode;
+                    FunctionStatementsEventListener ensureSingleStep = ensureSingleStep(fdn);
 
-                functionStatementsEventListener.clearStepInstrument();
-                ensureSingleStep.onEnter(context, frame);
+                    functionStatementsEventListener.clearStepInstrument();
+                    ensureSingleStep.onEnter(context, frame);
+                }
             }
         }
 
-- 
GitLab