comparison src/share/vm/oops/klassKlass.cpp @ 2376:c7f3d0b4570f

7017732: move static fields into Class to prepare for perm gen removal Reviewed-by: kvn, coleenp, twisti, stefank
author never
date Fri, 18 Mar 2011 16:00:34 -0700
parents e5383553fd4e
children 0654ee04b214
comparison
equal deleted inserted replaced
2375:d673ef06fe96 2376:c7f3d0b4570f
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");
173 return size; 177 return size;
174 } 178 }
175 179
176 #ifndef SERIALGC 180 #ifndef SERIALGC
177 void klassKlass::oop_push_contents(PSPromotionManager* pm, oop obj) { 181 void klassKlass::oop_push_contents(PSPromotionManager* pm, oop obj) {
182 Klass* k = Klass::cast(klassOop(obj));
183
184 oop* p = k->adr_java_mirror();
185 if (PSScavenge::should_scavenge(p)) {
186 pm->claim_or_forward_depth(p);
187 }
178 } 188 }
179 189
180 int klassKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) { 190 int klassKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) {
181 Klass* k = Klass::cast(klassOop(obj)); 191 Klass* k = Klass::cast(klassOop(obj));
182 192
231 } 241 }
232 } 242 }
233 243
234 if (k->java_mirror() != NULL || (k->oop_is_instance() && instanceKlass::cast(klassOop(obj))->is_loaded())) { 244 if (k->java_mirror() != NULL || (k->oop_is_instance() && instanceKlass::cast(klassOop(obj))->is_loaded())) {
235 guarantee(k->java_mirror() != NULL, "should be allocated"); 245 guarantee(k->java_mirror() != NULL, "should be allocated");
236 guarantee(k->java_mirror()->is_perm(), "should be in permspace"); 246 guarantee(k->java_mirror()->is_perm() || !JavaObjectsInPerm, "should be in permspace");
237 guarantee(k->java_mirror()->is_instance(), "should be instance"); 247 guarantee(k->java_mirror()->is_instance(), "should be instance");
238 } 248 }
239 } 249 }