29 lines
1.5 KiB
Diff
29 lines
1.5 KiB
Diff
diff --git a/hotspot/src/share/vm/code/compiledIC.cpp b/hotspot/src/share/vm/code/compiledIC.cpp
|
|
index 63821c0613..b0e3d057ca 100644
|
|
--- a/hotspot/src/share/vm/code/compiledIC.cpp
|
|
+++ b/hotspot/src/share/vm/code/compiledIC.cpp
|
|
@@ -403,7 +403,8 @@ void CompiledIC::set_to_monomorphic(CompiledICInfo& info) {
|
|
assert(info.cached_metadata() != NULL && info.cached_metadata()->is_method(), "sanity check");
|
|
CompiledStaticCall* csc = compiledStaticCall_at(instruction_address());
|
|
methodHandle method (thread, (Method*)info.cached_metadata());
|
|
- csc->set_to_interpreted(method, info.entry());
|
|
+ // Compiler sees 'this' as null on Zero but it should never actually get called
|
|
+ NOT_ZERO(csc->set_to_interpreted(method, info.entry()));
|
|
if (TraceICs) {
|
|
ResourceMark rm(thread);
|
|
tty->print_cr ("IC@" INTPTR_FORMAT ": monomorphic to interpreter: %s",
|
|
diff --git a/hotspot/src/share/vm/runtime/sharedRuntime.cpp b/hotspot/src/share/vm/runtime/sharedRuntime.cpp
|
|
index a136da9054..39fb84628b 100644
|
|
--- a/hotspot/src/share/vm/runtime/sharedRuntime.cpp
|
|
+++ b/hotspot/src/share/vm/runtime/sharedRuntime.cpp
|
|
@@ -1319,7 +1319,8 @@ methodHandle SharedRuntime::resolve_sub_helper(JavaThread *thread,
|
|
}
|
|
} else {
|
|
CompiledStaticCall* ssc = compiledStaticCall_before(caller_frame.pc());
|
|
- if (ssc->is_clean()) ssc->set(static_call_info);
|
|
+ // Compiler sees 'this' as null on Zero but it should never actually get called
|
|
+ NOT_ZERO(if (ssc->is_clean()) ssc->set(static_call_info));
|
|
}
|
|
}
|
|
|