Mercurial > hg > truffle
comparison src/share/vm/oops/instanceKlass.hpp @ 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 | d3676b4cb78c |
children | b37c246bf7ce ad6585fd4087 |
comparison
equal
deleted
inserted
replaced
725:928912ce8438 | 726:be93aad57795 |
---|---|
161 typeArrayOop _inner_classes; | 161 typeArrayOop _inner_classes; |
162 // Implementors of this interface (not valid if it overflows) | 162 // Implementors of this interface (not valid if it overflows) |
163 klassOop _implementors[implementors_limit]; | 163 klassOop _implementors[implementors_limit]; |
164 // Generic signature, or null if none. | 164 // Generic signature, or null if none. |
165 symbolOop _generic_signature; | 165 symbolOop _generic_signature; |
166 // invokedynamic bootstrap method (a java.dyn.MethodHandle) | |
167 oop _bootstrap_method; | |
166 // Annotations for this class, or null if none. | 168 // Annotations for this class, or null if none. |
167 typeArrayOop _class_annotations; | 169 typeArrayOop _class_annotations; |
168 // Annotation objects (byte arrays) for fields, or null if no annotations. | 170 // Annotation objects (byte arrays) for fields, or null if no annotations. |
169 // Indices correspond to entries (not indices) in fields array. | 171 // Indices correspond to entries (not indices) in fields array. |
170 objArrayOop _fields_annotations; | 172 objArrayOop _fields_annotations; |
462 u2 enclosing_method_method_index() const { return _enclosing_method_method_index; } | 464 u2 enclosing_method_method_index() const { return _enclosing_method_method_index; } |
463 void set_enclosing_method_indices(u2 class_index, | 465 void set_enclosing_method_indices(u2 class_index, |
464 u2 method_index) { _enclosing_method_class_index = class_index; | 466 u2 method_index) { _enclosing_method_class_index = class_index; |
465 _enclosing_method_method_index = method_index; } | 467 _enclosing_method_method_index = method_index; } |
466 | 468 |
469 // JSR 292 support | |
470 oop bootstrap_method() const { return _bootstrap_method; } | |
471 void set_bootstrap_method(oop mh) { oop_store(&_bootstrap_method, mh); } | |
472 | |
467 // jmethodID support | 473 // jmethodID support |
468 static jmethodID get_jmethod_id(instanceKlassHandle ik_h, size_t idnum, | 474 static jmethodID get_jmethod_id(instanceKlassHandle ik_h, size_t idnum, |
469 jmethodID new_id, jmethodID* new_jmeths); | 475 jmethodID new_id, jmethodID* new_jmeths); |
470 static jmethodID jmethod_id_for_impl(instanceKlassHandle ik_h, methodHandle method_h); | 476 static jmethodID jmethod_id_for_impl(instanceKlassHandle ik_h, methodHandle method_h); |
471 jmethodID jmethod_id_or_null(methodOop method); | 477 jmethodID jmethod_id_or_null(methodOop method); |
742 oop* adr_source_file_name() const { return (oop*)&this->_source_file_name;} | 748 oop* adr_source_file_name() const { return (oop*)&this->_source_file_name;} |
743 oop* adr_source_debug_extension() const { return (oop*)&this->_source_debug_extension;} | 749 oop* adr_source_debug_extension() const { return (oop*)&this->_source_debug_extension;} |
744 oop* adr_inner_classes() const { return (oop*)&this->_inner_classes;} | 750 oop* adr_inner_classes() const { return (oop*)&this->_inner_classes;} |
745 oop* adr_implementors() const { return (oop*)&this->_implementors[0];} | 751 oop* adr_implementors() const { return (oop*)&this->_implementors[0];} |
746 oop* adr_generic_signature() const { return (oop*)&this->_generic_signature;} | 752 oop* adr_generic_signature() const { return (oop*)&this->_generic_signature;} |
753 oop* adr_bootstrap_method() const { return (oop*)&this->_bootstrap_method;} | |
747 oop* adr_methods_jmethod_ids() const { return (oop*)&this->_methods_jmethod_ids;} | 754 oop* adr_methods_jmethod_ids() const { return (oop*)&this->_methods_jmethod_ids;} |
748 oop* adr_methods_cached_itable_indices() const { return (oop*)&this->_methods_cached_itable_indices;} | 755 oop* adr_methods_cached_itable_indices() const { return (oop*)&this->_methods_cached_itable_indices;} |
749 oop* adr_class_annotations() const { return (oop*)&this->_class_annotations;} | 756 oop* adr_class_annotations() const { return (oop*)&this->_class_annotations;} |
750 oop* adr_fields_annotations() const { return (oop*)&this->_fields_annotations;} | 757 oop* adr_fields_annotations() const { return (oop*)&this->_fields_annotations;} |
751 oop* adr_methods_annotations() const { return (oop*)&this->_methods_annotations;} | 758 oop* adr_methods_annotations() const { return (oop*)&this->_methods_annotations;} |