760 bool is_reference_instance_klass() const { return is_kind(_misc_kind_reference); }
761 bool is_mirror_instance_klass() const { return is_kind(_misc_kind_mirror); }
762 bool is_class_loader_instance_klass() const { return is_kind(_misc_kind_class_loader); }
763
764 #if INCLUDE_JVMTI
765
766 void init_previous_versions() {
767 _previous_versions = NULL;
768 }
769
770 private:
771 static int _previous_version_count;
772 public:
773 static void purge_previous_versions(InstanceKlass* ik);
774 static bool has_previous_versions() { return _previous_version_count > 0; }
775
776 // JVMTI: Support for caching a class file before it is modified by an agent that can do retransformation
777 void set_cached_class_file(JvmtiCachedClassFileData *data) {
778 _cached_class_file = data;
779 }
780 JvmtiCachedClassFileData * get_cached_class_file() { return _cached_class_file; }
781 jint get_cached_class_file_len();
782 unsigned char * get_cached_class_file_bytes();
783
784 // JVMTI: Support for caching of field indices, types, and offsets
785 void set_jvmti_cached_class_field_map(JvmtiCachedClassFieldMap* descriptor) {
786 _jvmti_cached_class_field_map = descriptor;
787 }
788 JvmtiCachedClassFieldMap* jvmti_cached_class_field_map() const {
789 return _jvmti_cached_class_field_map;
790 }
791
792 #else // INCLUDE_JVMTI
793
794 static void purge_previous_versions(InstanceKlass* ik) { return; };
795 static bool has_previous_versions() { return false; }
796
797 void set_cached_class_file(JvmtiCachedClassFileData *data) {
798 assert(data == NULL, "unexpected call with JVMTI disabled");
799 }
800 JvmtiCachedClassFileData * get_cached_class_file() { return (JvmtiCachedClassFileData *)NULL; }
801
802 #endif // INCLUDE_JVMTI
803
804 bool has_default_methods() const {
805 return (_misc_flags & _misc_has_default_methods) != 0;
806 }
807 void set_has_default_methods(bool b) {
808 if (b) {
809 _misc_flags |= _misc_has_default_methods;
810 } else {
811 _misc_flags &= ~_misc_has_default_methods;
812 }
813 }
814
815 bool declares_default_methods() const {
816 return (_misc_flags & _misc_declares_default_methods) != 0;
817 }
818 void set_declares_default_methods(bool b) {
819 if (b) {
820 _misc_flags |= _misc_declares_default_methods;
821 } else {
822 _misc_flags &= ~_misc_declares_default_methods;
|
760 bool is_reference_instance_klass() const { return is_kind(_misc_kind_reference); }
761 bool is_mirror_instance_klass() const { return is_kind(_misc_kind_mirror); }
762 bool is_class_loader_instance_klass() const { return is_kind(_misc_kind_class_loader); }
763
764 #if INCLUDE_JVMTI
765
766 void init_previous_versions() {
767 _previous_versions = NULL;
768 }
769
770 private:
771 static int _previous_version_count;
772 public:
773 static void purge_previous_versions(InstanceKlass* ik);
774 static bool has_previous_versions() { return _previous_version_count > 0; }
775
776 // JVMTI: Support for caching a class file before it is modified by an agent that can do retransformation
777 void set_cached_class_file(JvmtiCachedClassFileData *data) {
778 _cached_class_file = data;
779 }
780 JvmtiCachedClassFileData * get_cached_class_file();
781 jint get_cached_class_file_len();
782 unsigned char * get_cached_class_file_bytes();
783
784 // JVMTI: Support for caching of field indices, types, and offsets
785 void set_jvmti_cached_class_field_map(JvmtiCachedClassFieldMap* descriptor) {
786 _jvmti_cached_class_field_map = descriptor;
787 }
788 JvmtiCachedClassFieldMap* jvmti_cached_class_field_map() const {
789 return _jvmti_cached_class_field_map;
790 }
791
792 #else // INCLUDE_JVMTI
793
794 static void purge_previous_versions(InstanceKlass* ik) { return; };
795 static bool has_previous_versions() { return false; }
796
797 void set_cached_class_file(JvmtiCachedClassFileData *data) {
798 assert(data == NULL, "unexpected call with JVMTI disabled");
799 }
800 JvmtiCachedClassFileData * get_cached_class_file() { return (JvmtiCachedClassFileData *)NULL; }
801
802 #endif // INCLUDE_JVMTI
803
804 #if INCLUDE_CDS && INCLUDE_JVMTI
805 void set_archived_class_data(JvmtiCachedClassFileData* data) {
806 _cached_class_file = data;
807 }
808
809 JvmtiCachedClassFileData * get_archived_class_data();
810 #endif
811
812 bool has_default_methods() const {
813 return (_misc_flags & _misc_has_default_methods) != 0;
814 }
815 void set_has_default_methods(bool b) {
816 if (b) {
817 _misc_flags |= _misc_has_default_methods;
818 } else {
819 _misc_flags &= ~_misc_has_default_methods;
820 }
821 }
822
823 bool declares_default_methods() const {
824 return (_misc_flags & _misc_declares_default_methods) != 0;
825 }
826 void set_declares_default_methods(bool b) {
827 if (b) {
828 _misc_flags |= _misc_declares_default_methods;
829 } else {
830 _misc_flags &= ~_misc_declares_default_methods;
|