From c9b5f58d7f5f3e63d7cc072d2d2f27671faa753c Mon Sep 17 00:00:00 2001 From: Tobias Hartmann Date: Mon, 16 Nov 2015 08:03:24 +0100 Subject: [PATCH] 8142500: missing null checks in IfNode::has_only_uncommon_traps IfNode::has_only_uncommon_traps needs to null-check the callers. Reviewed-by: kvn, roland, rbackman --- hotspot/src/share/vm/opto/ifnode.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/hotspot/src/share/vm/opto/ifnode.cpp b/hotspot/src/share/vm/opto/ifnode.cpp index b43b35f1610..c4ee72f5c1d 100644 --- a/hotspot/src/share/vm/opto/ifnode.cpp +++ b/hotspot/src/share/vm/opto/ifnode.cpp @@ -806,7 +806,11 @@ bool IfNode::has_only_uncommon_traps(ProjNode* proj, ProjNode*& success, ProjNod // 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