Mercurial > hg > truffle
comparison src/share/vm/oops/instanceKlassKlass.cpp @ 726:be93aad57795
6655646: dynamic languages need dynamically linked call sites
Summary: invokedynamic instruction (JSR 292 RI)
Reviewed-by: twisti, never
author | jrose |
---|---|
date | Tue, 21 Apr 2009 23:21:04 -0700 |
parents | c89f86385056 |
children | b37c246bf7ce ad6585fd4087 |
comparison
equal
deleted
inserted
replaced
725:928912ce8438 | 726:be93aad57795 |
---|---|
82 MarkSweep::mark_and_push(ik->adr_inner_classes()); | 82 MarkSweep::mark_and_push(ik->adr_inner_classes()); |
83 MarkSweep::mark_and_push(ik->adr_protection_domain()); | 83 MarkSweep::mark_and_push(ik->adr_protection_domain()); |
84 MarkSweep::mark_and_push(ik->adr_host_klass()); | 84 MarkSweep::mark_and_push(ik->adr_host_klass()); |
85 MarkSweep::mark_and_push(ik->adr_signers()); | 85 MarkSweep::mark_and_push(ik->adr_signers()); |
86 MarkSweep::mark_and_push(ik->adr_generic_signature()); | 86 MarkSweep::mark_and_push(ik->adr_generic_signature()); |
87 MarkSweep::mark_and_push(ik->adr_bootstrap_method()); | |
87 MarkSweep::mark_and_push(ik->adr_class_annotations()); | 88 MarkSweep::mark_and_push(ik->adr_class_annotations()); |
88 MarkSweep::mark_and_push(ik->adr_fields_annotations()); | 89 MarkSweep::mark_and_push(ik->adr_fields_annotations()); |
89 MarkSweep::mark_and_push(ik->adr_methods_annotations()); | 90 MarkSweep::mark_and_push(ik->adr_methods_annotations()); |
90 MarkSweep::mark_and_push(ik->adr_methods_parameter_annotations()); | 91 MarkSweep::mark_and_push(ik->adr_methods_parameter_annotations()); |
91 MarkSweep::mark_and_push(ik->adr_methods_default_annotations()); | 92 MarkSweep::mark_and_push(ik->adr_methods_default_annotations()); |
122 PSParallelCompact::mark_and_push(cm, ik->adr_inner_classes()); | 123 PSParallelCompact::mark_and_push(cm, ik->adr_inner_classes()); |
123 PSParallelCompact::mark_and_push(cm, ik->adr_protection_domain()); | 124 PSParallelCompact::mark_and_push(cm, ik->adr_protection_domain()); |
124 PSParallelCompact::mark_and_push(cm, ik->adr_host_klass()); | 125 PSParallelCompact::mark_and_push(cm, ik->adr_host_klass()); |
125 PSParallelCompact::mark_and_push(cm, ik->adr_signers()); | 126 PSParallelCompact::mark_and_push(cm, ik->adr_signers()); |
126 PSParallelCompact::mark_and_push(cm, ik->adr_generic_signature()); | 127 PSParallelCompact::mark_and_push(cm, ik->adr_generic_signature()); |
128 PSParallelCompact::mark_and_push(cm, ik->adr_bootstrap_method()); | |
127 PSParallelCompact::mark_and_push(cm, ik->adr_class_annotations()); | 129 PSParallelCompact::mark_and_push(cm, ik->adr_class_annotations()); |
128 PSParallelCompact::mark_and_push(cm, ik->adr_fields_annotations()); | 130 PSParallelCompact::mark_and_push(cm, ik->adr_fields_annotations()); |
129 PSParallelCompact::mark_and_push(cm, ik->adr_methods_annotations()); | 131 PSParallelCompact::mark_and_push(cm, ik->adr_methods_annotations()); |
130 PSParallelCompact::mark_and_push(cm, ik->adr_methods_parameter_annotations()); | 132 PSParallelCompact::mark_and_push(cm, ik->adr_methods_parameter_annotations()); |
131 PSParallelCompact::mark_and_push(cm, ik->adr_methods_default_annotations()); | 133 PSParallelCompact::mark_and_push(cm, ik->adr_methods_default_annotations()); |
168 blk->do_oop(ik->adr_inner_classes()); | 170 blk->do_oop(ik->adr_inner_classes()); |
169 for (int i = 0; i < instanceKlass::implementors_limit; i++) { | 171 for (int i = 0; i < instanceKlass::implementors_limit; i++) { |
170 blk->do_oop(&ik->adr_implementors()[i]); | 172 blk->do_oop(&ik->adr_implementors()[i]); |
171 } | 173 } |
172 blk->do_oop(ik->adr_generic_signature()); | 174 blk->do_oop(ik->adr_generic_signature()); |
175 blk->do_oop(ik->adr_bootstrap_method()); | |
173 blk->do_oop(ik->adr_class_annotations()); | 176 blk->do_oop(ik->adr_class_annotations()); |
174 blk->do_oop(ik->adr_fields_annotations()); | 177 blk->do_oop(ik->adr_fields_annotations()); |
175 blk->do_oop(ik->adr_methods_annotations()); | 178 blk->do_oop(ik->adr_methods_annotations()); |
176 blk->do_oop(ik->adr_methods_parameter_annotations()); | 179 blk->do_oop(ik->adr_methods_parameter_annotations()); |
177 blk->do_oop(ik->adr_methods_default_annotations()); | 180 blk->do_oop(ik->adr_methods_default_annotations()); |
227 adr = ik->adr_implementors(); | 230 adr = ik->adr_implementors(); |
228 for (int i = 0; i < instanceKlass::implementors_limit; i++) { | 231 for (int i = 0; i < instanceKlass::implementors_limit; i++) { |
229 if (mr.contains(&adr[i])) blk->do_oop(&adr[i]); | 232 if (mr.contains(&adr[i])) blk->do_oop(&adr[i]); |
230 } | 233 } |
231 adr = ik->adr_generic_signature(); | 234 adr = ik->adr_generic_signature(); |
235 if (mr.contains(adr)) blk->do_oop(adr); | |
236 adr = ik->adr_bootstrap_method(); | |
232 if (mr.contains(adr)) blk->do_oop(adr); | 237 if (mr.contains(adr)) blk->do_oop(adr); |
233 adr = ik->adr_class_annotations(); | 238 adr = ik->adr_class_annotations(); |
234 if (mr.contains(adr)) blk->do_oop(adr); | 239 if (mr.contains(adr)) blk->do_oop(adr); |
235 adr = ik->adr_fields_annotations(); | 240 adr = ik->adr_fields_annotations(); |
236 if (mr.contains(adr)) blk->do_oop(adr); | 241 if (mr.contains(adr)) blk->do_oop(adr); |
272 MarkSweep::adjust_pointer(ik->adr_inner_classes()); | 277 MarkSweep::adjust_pointer(ik->adr_inner_classes()); |
273 for (int i = 0; i < instanceKlass::implementors_limit; i++) { | 278 for (int i = 0; i < instanceKlass::implementors_limit; i++) { |
274 MarkSweep::adjust_pointer(&ik->adr_implementors()[i]); | 279 MarkSweep::adjust_pointer(&ik->adr_implementors()[i]); |
275 } | 280 } |
276 MarkSweep::adjust_pointer(ik->adr_generic_signature()); | 281 MarkSweep::adjust_pointer(ik->adr_generic_signature()); |
282 MarkSweep::adjust_pointer(ik->adr_bootstrap_method()); | |
277 MarkSweep::adjust_pointer(ik->adr_class_annotations()); | 283 MarkSweep::adjust_pointer(ik->adr_class_annotations()); |
278 MarkSweep::adjust_pointer(ik->adr_fields_annotations()); | 284 MarkSweep::adjust_pointer(ik->adr_fields_annotations()); |
279 MarkSweep::adjust_pointer(ik->adr_methods_annotations()); | 285 MarkSweep::adjust_pointer(ik->adr_methods_annotations()); |
280 MarkSweep::adjust_pointer(ik->adr_methods_parameter_annotations()); | 286 MarkSweep::adjust_pointer(ik->adr_methods_parameter_annotations()); |
281 MarkSweep::adjust_pointer(ik->adr_methods_default_annotations()); | 287 MarkSweep::adjust_pointer(ik->adr_methods_default_annotations()); |
452 ik->set_jni_ids(NULL); | 458 ik->set_jni_ids(NULL); |
453 ik->set_osr_nmethods_head(NULL); | 459 ik->set_osr_nmethods_head(NULL); |
454 ik->set_breakpoints(NULL); | 460 ik->set_breakpoints(NULL); |
455 ik->init_previous_versions(); | 461 ik->init_previous_versions(); |
456 ik->set_generic_signature(NULL); | 462 ik->set_generic_signature(NULL); |
463 ik->set_bootstrap_method(NULL); | |
457 ik->release_set_methods_jmethod_ids(NULL); | 464 ik->release_set_methods_jmethod_ids(NULL); |
458 ik->release_set_methods_cached_itable_indices(NULL); | 465 ik->release_set_methods_cached_itable_indices(NULL); |
459 ik->set_class_annotations(NULL); | 466 ik->set_class_annotations(NULL); |
460 ik->set_fields_annotations(NULL); | 467 ik->set_fields_annotations(NULL); |
461 ik->set_methods_annotations(NULL); | 468 ik->set_methods_annotations(NULL); |
576 } | 583 } |
577 if (have_pv) st->cr(); | 584 if (have_pv) st->cr(); |
578 } // pvw is cleaned up | 585 } // pvw is cleaned up |
579 } // rm is cleaned up | 586 } // rm is cleaned up |
580 | 587 |
588 if (ik->bootstrap_method() != NULL) { | |
589 st->print(BULLET"bootstrap method: "); | |
590 ik->bootstrap_method()->print_value_on(st); | |
591 st->cr(); | |
592 } | |
581 if (ik->generic_signature() != NULL) { | 593 if (ik->generic_signature() != NULL) { |
582 st->print(BULLET"generic signature: "); | 594 st->print(BULLET"generic signature: "); |
583 ik->generic_signature()->print_value_on(st); | 595 ik->generic_signature()->print_value_on(st); |
584 st->cr(); | 596 st->cr(); |
585 } | 597 } |