comparison src/share/vm/oops/constantPoolKlass.cpp @ 3785:ddd894528dbc

7056328: JSR 292 invocation sometimes fails in adapters for types not on boot class path Reviewed-by: never
author jrose
date Thu, 23 Jun 2011 17:14:06 -0700
parents 69c94f488271
children f08d439fab8c
comparison
equal deleted inserted replaced
3784:aabf25fa3f05 3785:ddd894528dbc
308 constantPoolOop cp = constantPoolOop(obj); 308 constantPoolOop cp = constantPoolOop(obj);
309 if (cp->flags() != 0) { 309 if (cp->flags() != 0) {
310 st->print(" - flags: 0x%x", cp->flags()); 310 st->print(" - flags: 0x%x", cp->flags());
311 if (cp->has_pseudo_string()) st->print(" has_pseudo_string"); 311 if (cp->has_pseudo_string()) st->print(" has_pseudo_string");
312 if (cp->has_invokedynamic()) st->print(" has_invokedynamic"); 312 if (cp->has_invokedynamic()) st->print(" has_invokedynamic");
313 if (cp->has_preresolution()) st->print(" has_preresolution");
313 st->cr(); 314 st->cr();
314 } 315 }
316 if (cp->pool_holder() != NULL) {
317 bool extra = (instanceKlass::cast(cp->pool_holder())->constants() != cp);
318 st->print_cr(" - holder: " INTPTR_FORMAT "%s", cp->pool_holder(), (extra? " (extra)" : ""));
319 }
315 st->print_cr(" - cache: " INTPTR_FORMAT, cp->cache()); 320 st->print_cr(" - cache: " INTPTR_FORMAT, cp->cache());
316
317 for (int index = 1; index < cp->length(); index++) { // Index 0 is unused 321 for (int index = 1; index < cp->length(); index++) { // Index 0 is unused
318 st->print(" - %3d : ", index); 322 st->print(" - %3d : ", index);
319 cp->tag_at(index).print_on(st); 323 cp->tag_at(index).print_on(st);
320 st->print(" : "); 324 st->print(" : ");
321 switch (cp->tag_at(index).value()) { 325 switch (cp->tag_at(index).value()) {
412 assert(obj->is_constantPool(), "must be constantPool"); 416 assert(obj->is_constantPool(), "must be constantPool");
413 constantPoolOop cp = constantPoolOop(obj); 417 constantPoolOop cp = constantPoolOop(obj);
414 st->print("constant pool [%d]", cp->length()); 418 st->print("constant pool [%d]", cp->length());
415 if (cp->has_pseudo_string()) st->print("/pseudo_string"); 419 if (cp->has_pseudo_string()) st->print("/pseudo_string");
416 if (cp->has_invokedynamic()) st->print("/invokedynamic"); 420 if (cp->has_invokedynamic()) st->print("/invokedynamic");
421 if (cp->has_preresolution()) st->print("/preresolution");
417 if (cp->operands() != NULL) st->print("/operands[%d]", cp->operands()->length()); 422 if (cp->operands() != NULL) st->print("/operands[%d]", cp->operands()->length());
418 cp->print_address_on(st); 423 cp->print_address_on(st);
419 st->print(" for "); 424 st->print(" for ");
420 cp->pool_holder()->print_value_on(st); 425 cp->pool_holder()->print_value_on(st);
426 if (cp->pool_holder() != NULL) {
427 bool extra = (instanceKlass::cast(cp->pool_holder())->constants() != cp);
428 if (extra) st->print(" (extra)");
429 }
421 if (cp->cache() != NULL) { 430 if (cp->cache() != NULL) {
422 st->print(" cache=" PTR_FORMAT, cp->cache()); 431 st->print(" cache=" PTR_FORMAT, cp->cache());
423 } 432 }
424 } 433 }
425 434