Mercurial > hg > graal-jvmci-8
comparison src/share/vm/oops/klassKlass.cpp @ 2491:0654ee04b214
Merge with OpenJDK.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Fri, 22 Apr 2011 15:30:53 +0200 |
parents | 2ab52cda08e5 c7f3d0b4570f |
children | 75a99b4f1c98 |
comparison
equal
deleted
inserted
replaced
2490:29246b1d2d3c | 2491:0654ee04b214 |
---|---|
39 #include "oops/oop.inline2.hpp" | 39 #include "oops/oop.inline2.hpp" |
40 #include "oops/symbol.hpp" | 40 #include "oops/symbol.hpp" |
41 #include "oops/typeArrayKlass.hpp" | 41 #include "oops/typeArrayKlass.hpp" |
42 #include "runtime/handles.inline.hpp" | 42 #include "runtime/handles.inline.hpp" |
43 #ifndef SERIALGC | 43 #ifndef SERIALGC |
44 #include "gc_implementation/parNew/parOopClosures.inline.hpp" | |
45 #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp" | |
46 #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp" | |
47 #include "memory/cardTableRS.hpp" | |
44 #include "oops/oop.pcgc.inline.hpp" | 48 #include "oops/oop.pcgc.inline.hpp" |
45 #endif | 49 #endif |
46 | 50 |
47 int klassKlass::oop_size(oop obj) const { | 51 int klassKlass::oop_size(oop obj) const { |
48 assert (obj->is_klass(), "must be a klassOop"); | 52 assert (obj->is_klass(), "must be a klassOop"); |
179 return size; | 183 return size; |
180 } | 184 } |
181 | 185 |
182 #ifndef SERIALGC | 186 #ifndef SERIALGC |
183 void klassKlass::oop_push_contents(PSPromotionManager* pm, oop obj) { | 187 void klassKlass::oop_push_contents(PSPromotionManager* pm, oop obj) { |
188 Klass* k = Klass::cast(klassOop(obj)); | |
189 | |
190 oop* p = k->adr_java_mirror(); | |
191 if (PSScavenge::should_scavenge(p)) { | |
192 pm->claim_or_forward_depth(p); | |
193 } | |
184 } | 194 } |
185 | 195 |
186 int klassKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) { | 196 int klassKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) { |
187 Klass* k = Klass::cast(klassOop(obj)); | 197 Klass* k = Klass::cast(klassOop(obj)); |
188 | 198 |
237 } | 247 } |
238 } | 248 } |
239 | 249 |
240 if (k->java_mirror() != NULL || (k->oop_is_instance() && instanceKlass::cast(klassOop(obj))->is_loaded())) { | 250 if (k->java_mirror() != NULL || (k->oop_is_instance() && instanceKlass::cast(klassOop(obj))->is_loaded())) { |
241 guarantee(k->java_mirror() != NULL, "should be allocated"); | 251 guarantee(k->java_mirror() != NULL, "should be allocated"); |
242 guarantee(k->java_mirror()->is_perm(), "should be in permspace"); | 252 guarantee(k->java_mirror()->is_perm() || !JavaObjectsInPerm, "should be in permspace"); |
243 guarantee(k->java_mirror()->is_instance(), "should be instance"); | 253 guarantee(k->java_mirror()->is_instance(), "should be instance"); |
244 } | 254 } |
245 } | 255 } |