comparison src/share/vm/oops/instanceKlass.hpp @ 2356:72dee110246f

6839872: remove implementation inheritance from JSR 292 APIs Summary: consolidate runtime support in java.dyn.MethodHandleNatives; include transitional compatibility logic Reviewed-by: twisti
author jrose
date Fri, 11 Mar 2011 22:33:47 -0800
parents e5383553fd4e
children 8033953d67ff
comparison
equal deleted inserted replaced
2355:799d8ccf63cf 2356:72dee110246f
192 // inner_classes attribute. 192 // inner_classes attribute.
193 typeArrayOop _inner_classes; 193 typeArrayOop _inner_classes;
194 // Implementors of this interface (not valid if it overflows) 194 // Implementors of this interface (not valid if it overflows)
195 klassOop _implementors[implementors_limit]; 195 klassOop _implementors[implementors_limit];
196 // invokedynamic bootstrap method (a java.dyn.MethodHandle) 196 // invokedynamic bootstrap method (a java.dyn.MethodHandle)
197 oop _bootstrap_method; 197 oop _bootstrap_method; // AllowTransitionalJSR292 ONLY
198 // Annotations for this class, or null if none. 198 // Annotations for this class, or null if none.
199 typeArrayOop _class_annotations; 199 typeArrayOop _class_annotations;
200 // Annotation objects (byte arrays) for fields, or null if no annotations. 200 // Annotation objects (byte arrays) for fields, or null if no annotations.
201 // Indices correspond to entries (not indices) in fields array. 201 // Indices correspond to entries (not indices) in fields array.
202 objArrayOop _fields_annotations; 202 objArrayOop _fields_annotations;
527 void set_enclosing_method_indices(u2 class_index, 527 void set_enclosing_method_indices(u2 class_index,
528 u2 method_index) { _enclosing_method_class_index = class_index; 528 u2 method_index) { _enclosing_method_class_index = class_index;
529 _enclosing_method_method_index = method_index; } 529 _enclosing_method_method_index = method_index; }
530 530
531 // JSR 292 support 531 // JSR 292 support
532 oop bootstrap_method() const { return _bootstrap_method; } 532 oop bootstrap_method() const { return _bootstrap_method; } // AllowTransitionalJSR292 ONLY
533 void set_bootstrap_method(oop mh) { oop_store(&_bootstrap_method, mh); } 533 void set_bootstrap_method(oop mh) { oop_store(&_bootstrap_method, mh); }
534 534
535 // jmethodID support 535 // jmethodID support
536 static jmethodID get_jmethod_id(instanceKlassHandle ik_h, 536 static jmethodID get_jmethod_id(instanceKlassHandle ik_h,
537 methodHandle method_h); 537 methodHandle method_h);
815 oop* adr_protection_domain() const { return (oop*)&this->_protection_domain;} 815 oop* adr_protection_domain() const { return (oop*)&this->_protection_domain;}
816 oop* adr_host_klass() const { return (oop*)&this->_host_klass;} 816 oop* adr_host_klass() const { return (oop*)&this->_host_klass;}
817 oop* adr_signers() const { return (oop*)&this->_signers;} 817 oop* adr_signers() const { return (oop*)&this->_signers;}
818 oop* adr_inner_classes() const { return (oop*)&this->_inner_classes;} 818 oop* adr_inner_classes() const { return (oop*)&this->_inner_classes;}
819 oop* adr_implementors() const { return (oop*)&this->_implementors[0];} 819 oop* adr_implementors() const { return (oop*)&this->_implementors[0];}
820 oop* adr_bootstrap_method() const { return (oop*)&this->_bootstrap_method;} 820 oop* adr_bootstrap_method() const { return (oop*)&this->_bootstrap_method;} // AllowTransitionalJSR292 ONLY
821 oop* adr_methods_jmethod_ids() const { return (oop*)&this->_methods_jmethod_ids;} 821 oop* adr_methods_jmethod_ids() const { return (oop*)&this->_methods_jmethod_ids;}
822 oop* adr_methods_cached_itable_indices() const { return (oop*)&this->_methods_cached_itable_indices;} 822 oop* adr_methods_cached_itable_indices() const { return (oop*)&this->_methods_cached_itable_indices;}
823 oop* adr_class_annotations() const { return (oop*)&this->_class_annotations;} 823 oop* adr_class_annotations() const { return (oop*)&this->_class_annotations;}
824 oop* adr_fields_annotations() const { return (oop*)&this->_fields_annotations;} 824 oop* adr_fields_annotations() const { return (oop*)&this->_fields_annotations;}
825 oop* adr_methods_annotations() const { return (oop*)&this->_methods_annotations;} 825 oop* adr_methods_annotations() const { return (oop*)&this->_methods_annotations;}