src/share/vm/oops/instanceMirrorKlass.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 7017732_incremental Sdiff src/share/vm/oops

src/share/vm/oops/instanceMirrorKlass.cpp

Print this page




 258 
 259 #ifndef SERIALGC
 260 void instanceMirrorKlass::oop_push_contents(PSPromotionManager* pm, oop obj) {
 261   instanceKlass::oop_push_contents(pm, obj);
 262   InstanceMirrorKlass_OOP_ITERATE(                                            \
 263     start_of_static_fields(obj), java_lang_Class::static_oop_field_size(obj), \
 264     if (PSScavenge::should_scavenge(p)) {                                     \
 265       pm->claim_or_forward_depth(p);                                          \
 266     },                                                                        \
 267     assert_nothing )
 268 }
 269 
 270 int instanceMirrorKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) {
 271   instanceKlass::oop_update_pointers(cm, obj);
 272   InstanceMirrorKlass_OOP_ITERATE(                                            \
 273     start_of_static_fields(obj), java_lang_Class::static_oop_field_size(obj), \
 274     PSParallelCompact::adjust_pointer(p),                                     \
 275     assert_nothing)
 276   return oop_size(obj);
 277 }
 278 
 279 
 280 int instanceMirrorKlass::oop_update_pointers(ParCompactionManager* cm, oop obj,
 281                                              HeapWord* beg_addr, HeapWord* end_addr) {
 282   instanceKlass::oop_update_pointers(cm, obj, beg_addr, end_addr);
 283   InstanceMirrorKlass_BOUNDED_OOP_ITERATE(                                    \
 284     start_of_static_fields(obj), java_lang_Class::static_oop_field_size(obj), \
 285     beg_addr, end_addr,                                                       \
 286     PSParallelCompact::adjust_pointer(p),                                     \
 287     assert_nothing )
 288   return oop_size(obj);
 289 }
 290 #endif // SERIALGC
 291 
 292 int instanceMirrorKlass::instance_size(KlassHandle k) {
 293   if (k() != NULL && k->oop_is_instance()) {
 294     return align_object_size(size_helper() + instanceKlass::cast(k())->static_field_size());
 295   }
 296   return size_helper();
 297 }
 298 
 299 instanceOop instanceMirrorKlass::allocate_permanent_instance(KlassHandle k, TRAPS) {
 300   // Query before forming handle.
 301   int size = instance_size(k);
 302   KlassHandle h_k(THREAD, as_klassOop());
 303   instanceOop i = (instanceOop) CollectedHeap::permanent_obj_allocate(h_k, size, CHECK_NULL);








 304   return i;
 305 }
 306 
 307 int instanceMirrorKlass::oop_size(oop obj) const {
 308   return java_lang_Class::oop_size(obj);
 309 }
 310 
 311 int instanceMirrorKlass::compute_static_oop_field_size(oop obj) {
 312   klassOop k = java_lang_Class::as_klassOop(obj);
 313   if (k != NULL && k->klass_part()->oop_is_instance()) {
 314     return instanceKlass::cast(k)->static_oop_field_size();
 315   }
 316   return 0;
 317 }


 258 
 259 #ifndef SERIALGC
 260 void instanceMirrorKlass::oop_push_contents(PSPromotionManager* pm, oop obj) {
 261   instanceKlass::oop_push_contents(pm, obj);
 262   InstanceMirrorKlass_OOP_ITERATE(                                            \
 263     start_of_static_fields(obj), java_lang_Class::static_oop_field_size(obj), \
 264     if (PSScavenge::should_scavenge(p)) {                                     \
 265       pm->claim_or_forward_depth(p);                                          \
 266     },                                                                        \
 267     assert_nothing )
 268 }
 269 
 270 int instanceMirrorKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) {
 271   instanceKlass::oop_update_pointers(cm, obj);
 272   InstanceMirrorKlass_OOP_ITERATE(                                            \
 273     start_of_static_fields(obj), java_lang_Class::static_oop_field_size(obj), \
 274     PSParallelCompact::adjust_pointer(p),                                     \
 275     assert_nothing)
 276   return oop_size(obj);
 277 }












 278 #endif // SERIALGC
 279 
 280 int instanceMirrorKlass::instance_size(KlassHandle k) {
 281   if (k() != NULL && k->oop_is_instance()) {
 282     return align_object_size(size_helper() + instanceKlass::cast(k())->static_field_size());
 283   }
 284   return size_helper();
 285 }
 286 
 287 instanceOop instanceMirrorKlass::allocate_instance(KlassHandle k, TRAPS) {
 288   // Query before forming handle.
 289   int size = instance_size(k);
 290   KlassHandle h_k(THREAD, as_klassOop());
 291   instanceOop i;
 292 
 293   if (JavaObjectsInPerm) {
 294     i = (instanceOop) CollectedHeap::permanent_obj_allocate(h_k, size, CHECK_NULL);
 295   } else {
 296     assert(ScavengeRootsInCode > 0, "must be");
 297     i = (instanceOop) CollectedHeap::obj_allocate(h_k, size, CHECK_NULL);
 298   }
 299 
 300   return i;
 301 }
 302 
 303 int instanceMirrorKlass::oop_size(oop obj) const {
 304   return java_lang_Class::oop_size(obj);
 305 }
 306 
 307 int instanceMirrorKlass::compute_static_oop_field_size(oop obj) {
 308   klassOop k = java_lang_Class::as_klassOop(obj);
 309   if (k != NULL && k->klass_part()->oop_is_instance()) {
 310     return instanceKlass::cast(k)->static_oop_field_size();
 311   }
 312   return 0;
 313 }
src/share/vm/oops/instanceMirrorKlass.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File