changeset 17410:c58171f94377

Truffle: fix potential null dereferences in call tree visitor.
author Christian Humer <christian.humer@gmail.com>
date Fri, 10 Oct 2014 10:54:34 +0200
parents 4c0dcd164718
children 6d82c240d83e
files graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleInlining.java
diffstat 1 files changed, 6 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleInlining.java	Fri Oct 10 10:54:11 2014 +0200
+++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleInlining.java	Fri Oct 10 10:54:34 2014 +0200
@@ -173,9 +173,11 @@
 
         static int getNodeDepth(List<TruffleInlining> decisionStack, Node node) {
             int depth = calculateNodeDepth(node);
-            for (int i = decisionStack.size() - 1; i > 0; i--) {
-                TruffleInliningDecision decision = (TruffleInliningDecision) decisionStack.get(i);
-                depth += calculateNodeDepth(decision.getProfile().getCallNode());
+            if (decisionStack != null) {
+                for (int i = decisionStack.size() - 1; i > 0; i--) {
+                    TruffleInliningDecision decision = (TruffleInliningDecision) decisionStack.get(i);
+                    depth += calculateNodeDepth(decision.getProfile().getCallNode());
+                }
             }
             return depth;
         }
@@ -191,7 +193,7 @@
         }
 
         static TruffleInliningDecision getCurrentInliningDecision(List<TruffleInlining> decisionStack) {
-            if (decisionStack.size() <= 1) {
+            if (decisionStack == null || decisionStack.size() <= 1) {
                 return null;
             }
             return (TruffleInliningDecision) decisionStack.get(decisionStack.size() - 1);