comparison src/share/vm/oops/instanceKlass.hpp @ 11148:825e6cb66923

8020309: Eliminate InstanceKlass::_cached_class_file_len. Summary: Use JvmtiCachedClassFileData. Reviewed-by: iklam, sspitsyn, dcubed
author jiangli
date Wed, 17 Jul 2013 18:06:29 -0400
parents 71180a6e5080
children 6b0fd0964b87 e22ee8e7ae62
comparison
equal deleted inserted replaced
11146:e619a2766bcc 11148:825e6cb66923
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 }