754 }
755
756 public:
757
758 // Other is anything that is not one of the more specialized kinds of InstanceKlass.
759 bool is_other_instance_klass() const { return is_kind(_misc_kind_other); }
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() {
775 assert(_previous_version_count >= 0, "count should never be negative");
776 return _previous_version_count > 0;
777 }
778
779 // JVMTI: Support for caching a class file before it is modified by an agent that can do retransformation
780 void set_cached_class_file(JvmtiCachedClassFileData *data) {
781 _cached_class_file = data;
782 }
783 JvmtiCachedClassFileData * get_cached_class_file() { return _cached_class_file; }
784 jint get_cached_class_file_len();
785 unsigned char * get_cached_class_file_bytes();
786
787 // JVMTI: Support for caching of field indices, types, and offsets
788 void set_jvmti_cached_class_field_map(JvmtiCachedClassFieldMap* descriptor) {
789 _jvmti_cached_class_field_map = descriptor;
790 }
791 JvmtiCachedClassFieldMap* jvmti_cached_class_field_map() const {
792 return _jvmti_cached_class_field_map;
793 }
794
795 #else // INCLUDE_JVMTI
796
797 static void purge_previous_versions(InstanceKlass* ik) { return; };
|
754 }
755
756 public:
757
758 // Other is anything that is not one of the more specialized kinds of InstanceKlass.
759 bool is_other_instance_klass() const { return is_kind(_misc_kind_other); }
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; };
|