equal
deleted
inserted
replaced
65 |
65 |
66 // Needs to be boundary aware for the 64 bit case |
66 // Needs to be boundary aware for the 64 bit case |
67 // update_header(); |
67 // update_header(); |
68 // The klass has moved. Is the location of the klass |
68 // The klass has moved. Is the location of the klass |
69 // within the limits? |
69 // within the limits? |
70 if ((((HeapWord*)&_klass) >= begin_limit) && |
70 if ((((HeapWord*)&_metadata._klass) >= begin_limit) && |
71 (((HeapWord*)&_klass) < end_limit)) { |
71 (((HeapWord*)&_metadata._klass) < end_limit)) { |
72 set_klass(updated_klass); |
72 set_klass(updated_klass); |
73 } |
73 } |
74 |
74 |
75 Klass* klass = updated_klass->klass_part(); |
75 Klass* klass = updated_klass->klass_part(); |
76 if (!klass->oop_is_typeArray()) { |
76 if (!klass->oop_is_typeArray()) { |
87 } |
87 } |
88 |
88 |
89 // Used by parallel old GC. |
89 // Used by parallel old GC. |
90 |
90 |
91 inline void oopDesc::follow_header(ParCompactionManager* cm) { |
91 inline void oopDesc::follow_header(ParCompactionManager* cm) { |
92 PSParallelCompact::mark_and_push(cm, (oop*)&_klass); |
92 if (UseCompressedOops) { |
|
93 PSParallelCompact::mark_and_push(cm, compressed_klass_addr()); |
|
94 } else { |
|
95 PSParallelCompact::mark_and_push(cm, klass_addr()); |
|
96 } |
93 } |
97 } |
94 |
98 |
95 inline oop oopDesc::forward_to_atomic(oop p) { |
99 inline oop oopDesc::forward_to_atomic(oop p) { |
96 assert(ParNewGeneration::is_legal_forward_ptr(p), |
100 assert(ParNewGeneration::is_legal_forward_ptr(p), |
97 "illegal forwarding pointer value."); |
101 "illegal forwarding pointer value."); |
112 } |
116 } |
113 return forwardee(); |
117 return forwardee(); |
114 } |
118 } |
115 |
119 |
116 inline void oopDesc::update_header() { |
120 inline void oopDesc::update_header() { |
117 PSParallelCompact::adjust_pointer((oop*)&_klass); |
121 if (UseCompressedOops) { |
|
122 PSParallelCompact::adjust_pointer(compressed_klass_addr()); |
|
123 } else { |
|
124 PSParallelCompact::adjust_pointer(klass_addr()); |
|
125 } |
118 } |
126 } |
119 |
127 |
120 inline void oopDesc::update_header(HeapWord* beg_addr, HeapWord* end_addr) { |
128 inline void oopDesc::update_header(HeapWord* beg_addr, HeapWord* end_addr) { |
121 PSParallelCompact::adjust_pointer((oop*)&_klass, beg_addr, end_addr); |
129 if (UseCompressedOops) { |
|
130 PSParallelCompact::adjust_pointer(compressed_klass_addr(), |
|
131 beg_addr, end_addr); |
|
132 } else { |
|
133 PSParallelCompact::adjust_pointer(klass_addr(), beg_addr, end_addr); |
|
134 } |
122 } |
135 } |