Wed, 04 May 2011 00:41:48 -0700
7041244: JSR 292: Server VM gets a SEGV running a JCK test
Reviewed-by: iveresov, kvn, never
src/cpu/sparc/vm/methodHandles_sparc.cpp | file | annotate | diff | comparison | revisions | |
src/share/vm/memory/genOopClosures.hpp | file | annotate | diff | comparison | revisions |
1.1 --- a/src/cpu/sparc/vm/methodHandles_sparc.cpp Mon May 02 18:53:37 2011 -0700 1.2 +++ b/src/cpu/sparc/vm/methodHandles_sparc.cpp Wed May 04 00:41:48 2011 -0700 1.3 @@ -645,9 +645,10 @@ 1.4 1.5 // Live at this point: 1.6 // - G5_klass : klass required by the target method 1.7 + // - O0_argslot : argslot index in vmarg; may be required in the failing path 1.8 // - O1_scratch : argument klass to test 1.9 // - G3_method_handle: adapter method handle 1.10 - __ check_klass_subtype(O1_scratch, G5_klass, O0_argslot, O2_scratch, done); 1.11 + __ check_klass_subtype(O1_scratch, G5_klass, O2_scratch, O3_scratch, done); 1.12 1.13 // If we get here, the type check failed! 1.14 __ load_heap_oop(G3_amh_argument, O2_required); // required class
2.1 --- a/src/share/vm/memory/genOopClosures.hpp Mon May 02 18:53:37 2011 -0700 2.2 +++ b/src/share/vm/memory/genOopClosures.hpp Wed May 04 00:41:48 2011 -0700 2.3 @@ -175,7 +175,7 @@ 2.4 protected: 2.5 template <class T> inline void do_oop_work(T* p) { 2.6 oop obj = oopDesc::load_decode_heap_oop(p); 2.7 - guarantee(obj->is_oop_or_null(), err_msg("invalid oop: " INTPTR_FORMAT, obj)); 2.8 + guarantee(obj->is_oop_or_null(), err_msg("invalid oop: " INTPTR_FORMAT, (oopDesc*) obj)); 2.9 } 2.10 public: 2.11 virtual void do_oop(oop* p);