equal
deleted
inserted
replaced
131 private: |
131 private: |
132 int _offset; |
132 int _offset; |
133 uint _count; |
133 uint _count; |
134 }; |
134 }; |
135 |
135 |
|
136 struct JvmtiCachedClassFileData; |
|
137 |
136 class InstanceKlass: public Klass { |
138 class InstanceKlass: public Klass { |
137 friend class VMStructs; |
139 friend class VMStructs; |
138 friend class ClassFileParser; |
140 friend class ClassFileParser; |
139 friend class CompileReplay; |
141 friend class CompileReplay; |
140 |
142 |
247 BreakpointInfo* _breakpoints; // bpt lists, managed by Method* |
249 BreakpointInfo* _breakpoints; // bpt lists, managed by Method* |
248 // Array of interesting part(s) of the previous version(s) of this |
250 // Array of interesting part(s) of the previous version(s) of this |
249 // InstanceKlass. See PreviousVersionWalker below. |
251 // InstanceKlass. See PreviousVersionWalker below. |
250 GrowableArray<PreviousVersionNode *>* _previous_versions; |
252 GrowableArray<PreviousVersionNode *>* _previous_versions; |
251 // JVMTI fields can be moved to their own structure - see 6315920 |
253 // JVMTI fields can be moved to their own structure - see 6315920 |
252 unsigned char * _cached_class_file_bytes; // JVMTI: cached class file, before retransformable agent modified it in CFLH |
254 // JVMTI: cached class file, before retransformable agent modified it in CFLH |
253 jint _cached_class_file_len; // JVMTI: length of above |
255 JvmtiCachedClassFileData* _cached_class_file; |
254 |
256 |
255 volatile u2 _idnum_allocated_count; // JNI/JVMTI: increments with the addition of methods, old ids don't change |
257 volatile u2 _idnum_allocated_count; // JNI/JVMTI: increments with the addition of methods, old ids don't change |
256 |
258 |
257 // Class states are defined as ClassState (see above). |
259 // Class states are defined as ClassState (see above). |
258 // Place the _init_state here to utilize the unused 2-byte after |
260 // Place the _init_state here to utilize the unused 2-byte after |
613 } |
615 } |
614 |
616 |
615 static void purge_previous_versions(InstanceKlass* ik); |
617 static void purge_previous_versions(InstanceKlass* ik); |
616 |
618 |
617 // JVMTI: Support for caching a class file before it is modified by an agent that can do retransformation |
619 // JVMTI: Support for caching a class file before it is modified by an agent that can do retransformation |
618 void set_cached_class_file(unsigned char *class_file_bytes, |
620 void set_cached_class_file(JvmtiCachedClassFileData *data) { |
619 jint class_file_len) { _cached_class_file_len = class_file_len; |
621 _cached_class_file = data; |
620 _cached_class_file_bytes = class_file_bytes; } |
622 } |
621 jint get_cached_class_file_len() { return _cached_class_file_len; } |
623 JvmtiCachedClassFileData * get_cached_class_file() { return _cached_class_file; } |
622 unsigned char * get_cached_class_file_bytes() { return _cached_class_file_bytes; } |
624 jint get_cached_class_file_len(); |
|
625 unsigned char * get_cached_class_file_bytes(); |
623 |
626 |
624 // JVMTI: Support for caching of field indices, types, and offsets |
627 // JVMTI: Support for caching of field indices, types, and offsets |
625 void set_jvmti_cached_class_field_map(JvmtiCachedClassFieldMap* descriptor) { |
628 void set_jvmti_cached_class_field_map(JvmtiCachedClassFieldMap* descriptor) { |
626 _jvmti_cached_class_field_map = descriptor; |
629 _jvmti_cached_class_field_map = descriptor; |
627 } |
630 } |