Mercurial > hg > truffle
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); |