1
0
Fridrich Strba 2015-01-09 09:47:29 +00:00 committed by Git OBS Bridge
parent 13a93f6a86
commit 3cefd01452
3 changed files with 40 additions and 0 deletions

View File

@ -2299,6 +2299,27 @@
static bool is_invoke (Code code) { return (_invokevirtual <= code && code <= _invokedynamic); }
static bool has_receiver (Code code) { assert(is_invoke(code), ""); return code == _invokevirtual ||
code == _invokespecial ||
--- jdk8/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp Thu Oct 23 15:32:14 2014 -0700
+++ jdk8/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp Wed Dec 17 10:43:38 2014 -0800
@@ -398,6 +398,18 @@
int handler_bci;
int current_bci = bci(thread);
+ if (thread->frames_to_pop_failed_realloc() > 0) {
+ // Allocation of scalar replaced object used in this frame
+ // failed. Unconditionally pop the frame.
+ thread->dec_frames_to_pop_failed_realloc();
+ thread->set_vm_result(h_exception());
+ // If the method is synchronized we already unlocked the monitor
+ // during deoptimization so the interpreter needs to skip it when
+ // the frame is popped.
+ thread->set_do_not_unlock_if_synchronized(true);
+ return Interpreter::remove_activation_entry();
+ }
+
// Need to do this check first since when _do_not_unlock_if_synchronized
// is set, we don't want to trigger any classloading which may make calls
// into java, or surprisingly find a matching exception handler for bci 0
--- jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp 2015-01-06 16:57:27.000000000 +0100
+++ jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp 2015-01-08 21:23:31.164148528 +0100
@@ -183,13 +183,9 @@

View File

@ -0,0 +1,15 @@
--- jdk8/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp Sat Dec 13 01:24:10 2014 +0300
+++ jdk8/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp Mon Dec 15 09:36:46 2014 +0100
@@ -394,7 +394,11 @@
// during deoptimization so the interpreter needs to skip it when
// the frame is popped.
thread->set_do_not_unlock_if_synchronized(true);
+#ifdef CC_INTERP
+ return (address) -1;
+#else
return Interpreter::remove_activation_entry();
+#endif
}
// Need to do this check first since when _do_not_unlock_if_synchronized

View File

@ -223,6 +223,8 @@ Patch12: adlc-parser.patch
Patch13: implicit-pointer-decl.patch
# Avoid triggering inactivity timeout while generating javadoc in zero VM
Patch14: zero-javadoc-verbose.patch
# Fix to build the C++ interpreter that does not have Interpreter::remove_activation_entry
Patch15: cplusplus-interpreter.patch
#
# OpenJDK specific patches
#
@ -517,6 +519,8 @@ rm -rvf jdk/src/share/native/sun/java2d/cmm/lcms/lcms2*
%patch14 -p1
%endif
%patch15 -p1
%patch99 -p1
# s390 build fixes