changeset 34177:e19e45b065c6

8142500: missing null checks in IfNode::has_only_uncommon_traps Summary: IfNode::has_only_uncommon_traps needs to null-check the callers. Reviewed-by: kvn, roland, rbackman
author thartmann
date Mon, 16 Nov 2015 08:03:24 +0100
parents c1b52e665b47
children 2df24ec747b6
files hotspot/src/share/vm/opto/ifnode.cpp
diffstat 1 files changed, 5 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/hotspot/src/share/vm/opto/ifnode.cpp	Fri Nov 13 18:14:41 2015 +0300
+++ b/hotspot/src/share/vm/opto/ifnode.cpp	Mon Nov 16 08:03:24 2015 +0100
@@ -806,7 +806,11 @@
       // that the call stacks are equal for both JVMStates.
       JVMState* dom_caller = dom_unc->jvms()->caller();
       JVMState* caller = unc->jvms()->caller();
-      if (!dom_caller->same_calls_as(caller)) {
+      if ((dom_caller == NULL) != (caller == NULL)) {
+        // The current method must either be inlined into both dom_caller and
+        // caller or must not be inlined at all (top method). Bail out otherwise.
+        return false;
+      } else if (dom_caller != NULL && !dom_caller->same_calls_as(caller)) {
         return false;
       }
       // Check that the bci of the dominating uncommon trap dominates the bci