7041244: JSR 292: Server VM gets a SEGV running a JCK test

Wed, 04 May 2011 00:41:48 -0700

author
twisti
date
Wed, 04 May 2011 00:41:48 -0700
changeset 2874
8d944991dbf9
parent 2868
2e038ad0c1d0
child 2875
6ee92b277bc5

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);

mercurial