src/share/vm/oops/constantPoolKlass.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6817525 Sdiff src/share/vm/oops

src/share/vm/oops/constantPoolKlass.cpp

Print this page




 269   // pool.
 270   if (cp->tags() != NULL) {
 271     oop* base = (oop*)cp->base();
 272     for (int i = 0; i < cp->length(); ++i, ++base) {
 273       if (cp->is_pointer_entry(i)) {
 274         PSParallelCompact::adjust_pointer(base);
 275       }
 276     }
 277   }
 278   PSParallelCompact::adjust_pointer(cp->tags_addr());
 279   PSParallelCompact::adjust_pointer(cp->cache_addr());
 280   PSParallelCompact::adjust_pointer(cp->operands_addr());
 281   PSParallelCompact::adjust_pointer(cp->pool_holder_addr());
 282   return cp->object_size();
 283 }
 284 
 285 void constantPoolKlass::oop_push_contents(PSPromotionManager* pm, oop obj) {
 286   assert(obj->is_constantPool(), "should be constant pool");
 287   constantPoolOop cp = (constantPoolOop) obj;
 288   if (cp->tags() != NULL &&
 289       (!JavaObjectsInPerm || (AnonymousClasses && cp->has_pseudo_string()))) {
 290     for (int i = 1; i < cp->length(); ++i) {
 291       if (cp->tag_at(i).is_string()) {
 292         oop* base = cp->obj_at_addr_raw(i);
 293         if (PSScavenge::should_scavenge(base)) {
 294           pm->claim_or_forward_depth(base);
 295         }
 296       }
 297     }
 298   }
 299 }
 300 #endif // SERIALGC
 301 
 302 // Printing
 303 
 304 void constantPoolKlass::oop_print_on(oop obj, outputStream* st) {
 305   EXCEPTION_MARK;
 306   oop anObj;
 307   assert(obj->is_constantPool(), "must be constantPool");
 308   Klass::oop_print_on(obj, st);
 309   constantPoolOop cp = constantPoolOop(obj);




 269   // pool.
 270   if (cp->tags() != NULL) {
 271     oop* base = (oop*)cp->base();
 272     for (int i = 0; i < cp->length(); ++i, ++base) {
 273       if (cp->is_pointer_entry(i)) {
 274         PSParallelCompact::adjust_pointer(base);
 275       }
 276     }
 277   }
 278   PSParallelCompact::adjust_pointer(cp->tags_addr());
 279   PSParallelCompact::adjust_pointer(cp->cache_addr());
 280   PSParallelCompact::adjust_pointer(cp->operands_addr());
 281   PSParallelCompact::adjust_pointer(cp->pool_holder_addr());
 282   return cp->object_size();
 283 }
 284 
 285 void constantPoolKlass::oop_push_contents(PSPromotionManager* pm, oop obj) {
 286   assert(obj->is_constantPool(), "should be constant pool");
 287   constantPoolOop cp = (constantPoolOop) obj;
 288   if (cp->tags() != NULL &&
 289       (!JavaObjectsInPerm || (EnableInvokeDynamic && cp->has_pseudo_string()))) {
 290     for (int i = 1; i < cp->length(); ++i) {
 291       if (cp->tag_at(i).is_string()) {
 292         oop* base = cp->obj_at_addr_raw(i);
 293         if (PSScavenge::should_scavenge(base)) {
 294           pm->claim_or_forward_depth(base);
 295         }
 296       }
 297     }
 298   }
 299 }
 300 #endif // SERIALGC
 301 
 302 // Printing
 303 
 304 void constantPoolKlass::oop_print_on(oop obj, outputStream* st) {
 305   EXCEPTION_MARK;
 306   oop anObj;
 307   assert(obj->is_constantPool(), "must be constantPool");
 308   Klass::oop_print_on(obj, st);
 309   constantPoolOop cp = constantPoolOop(obj);


src/share/vm/oops/constantPoolKlass.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File