comparison src/share/vm/oops/constantPoolKlass.cpp @ 3243:208b6c560ff4

Merge
author vladidan
date Thu, 14 Apr 2011 11:02:05 -0400
parents 6c97c830fb6f
children 69c94f488271
comparison
equal deleted inserted replaced
3242:c737922fd8bb 3243:208b6c560ff4
243 base++; 243 base++;
244 } 244 }
245 } 245 }
246 oop* addr; 246 oop* addr;
247 addr = cp->tags_addr(); 247 addr = cp->tags_addr();
248 blk->do_oop(addr); 248 if (mr.contains(addr)) blk->do_oop(addr);
249 addr = cp->cache_addr(); 249 addr = cp->cache_addr();
250 blk->do_oop(addr); 250 if (mr.contains(addr)) blk->do_oop(addr);
251 addr = cp->operands_addr(); 251 addr = cp->operands_addr();
252 blk->do_oop(addr); 252 if (mr.contains(addr)) blk->do_oop(addr);
253 addr = cp->pool_holder_addr(); 253 addr = cp->pool_holder_addr();
254 blk->do_oop(addr); 254 if (mr.contains(addr)) blk->do_oop(addr);
255 return size; 255 return size;
256 } 256 }
257 257
258 bool constantPoolKlass::oop_is_conc_safe(oop obj) const { 258 bool constantPoolKlass::oop_is_conc_safe(oop obj) const {
259 assert(obj->is_constantPool(), "must be constantPool"); 259 assert(obj->is_constantPool(), "must be constantPool");
284 284
285 void constantPoolKlass::oop_push_contents(PSPromotionManager* pm, oop obj) { 285 void constantPoolKlass::oop_push_contents(PSPromotionManager* pm, oop obj) {
286 assert(obj->is_constantPool(), "should be constant pool"); 286 assert(obj->is_constantPool(), "should be constant pool");
287 constantPoolOop cp = (constantPoolOop) obj; 287 constantPoolOop cp = (constantPoolOop) obj;
288 if (cp->tags() != NULL && 288 if (cp->tags() != NULL &&
289 (!JavaObjectsInPerm || (AnonymousClasses && cp->has_pseudo_string()))) { 289 (!JavaObjectsInPerm || (EnableInvokeDynamic && cp->has_pseudo_string()))) {
290 for (int i = 1; i < cp->length(); ++i) { 290 for (int i = 1; i < cp->length(); ++i) {
291 if (cp->tag_at(i).is_string()) { 291 if (cp->tag_at(i).is_string()) {
292 oop* base = cp->obj_at_addr_raw(i); 292 oop* base = cp->obj_at_addr_raw(i);
293 if (PSScavenge::should_scavenge(base)) { 293 if (PSScavenge::should_scavenge(base)) {
294 pm->claim_or_forward_depth(base); 294 pm->claim_or_forward_depth(base);
379 st->print(" ref_index=%d", cp->method_handle_index_at(index)); 379 st->print(" ref_index=%d", cp->method_handle_index_at(index));
380 break; 380 break;
381 case JVM_CONSTANT_MethodType : 381 case JVM_CONSTANT_MethodType :
382 st->print("signature_index=%d", cp->method_type_index_at(index)); 382 st->print("signature_index=%d", cp->method_type_index_at(index));
383 break; 383 break;
384 case JVM_CONSTANT_InvokeDynamicTrans :
385 case JVM_CONSTANT_InvokeDynamic : 384 case JVM_CONSTANT_InvokeDynamic :
386 { 385 {
387 st->print("bootstrap_method_index=%d", cp->invoke_dynamic_bootstrap_method_ref_index_at(index)); 386 st->print("bootstrap_method_index=%d", cp->invoke_dynamic_bootstrap_method_ref_index_at(index));
388 st->print(" name_and_type_index=%d", cp->invoke_dynamic_name_and_type_ref_index_at(index)); 387 st->print(" name_and_type_index=%d", cp->invoke_dynamic_name_and_type_ref_index_at(index));
389 int argc = cp->invoke_dynamic_argument_count_at(index); 388 int argc = cp->invoke_dynamic_argument_count_at(index);