comparison src/share/vm/oops/oop.inline.hpp @ 454:df4305d4c1a1

6774607: SIGSEGV or (!is_null(v),"oop value can never be zero") assertion when running with CMS and COOPs Summary: Use the more permissive set_klass_or_null() and klass_or_null() interfaces in ParNew's workqueue overflow code that manipulates the klass-word. Reviewed-by: coleenp
author ysr
date Mon, 24 Nov 2008 09:53:31 -0800
parents 1ee8caae33af
children 0af8b0718fc9
comparison
equal deleted inserted replaced
453:c96030fff130 454:df4305d4c1a1
90 90
91 inline void oopDesc::set_klass_to_list_ptr(oop k) { 91 inline void oopDesc::set_klass_to_list_ptr(oop k) {
92 // This is only to be used during GC, for from-space objects, so no 92 // This is only to be used during GC, for from-space objects, so no
93 // barrier is needed. 93 // barrier is needed.
94 if (UseCompressedOops) { 94 if (UseCompressedOops) {
95 _metadata._compressed_klass = encode_heap_oop_not_null(k); 95 _metadata._compressed_klass = encode_heap_oop(k); // may be null (parnew overflow handling)
96 } else { 96 } else {
97 _metadata._klass = (klassOop)k; 97 _metadata._klass = (klassOop)k;
98 } 98 }
99 } 99 }
100 100