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 |