comparison src/share/vm/oops/instanceKlass.hpp @ 7968:44c5fcd9cb25

8006280: Need to reorder metadata structures to reduce size (64-bit) Summary: Reordered Klass, InstanceKlass and Method to save 8 bytes each Reviewed-by: coleenp, jiangli Contributed-by: ioi.lam@oracle.com
author iklam
date Thu, 24 Jan 2013 10:57:38 -0800
parents 212c5b9c38e7
children 1eae78177059
comparison
equal deleted inserted replaced
7950:6cf2530f7fd3 7968:44c5fcd9cb25
254 // InstanceKlass. See PreviousVersionWalker below. 254 // InstanceKlass. See PreviousVersionWalker below.
255 GrowableArray<PreviousVersionNode *>* _previous_versions; 255 GrowableArray<PreviousVersionNode *>* _previous_versions;
256 // JVMTI fields can be moved to their own structure - see 6315920 256 // JVMTI fields can be moved to their own structure - see 6315920
257 unsigned char * _cached_class_file_bytes; // JVMTI: cached class file, before retransformable agent modified it in CFLH 257 unsigned char * _cached_class_file_bytes; // JVMTI: cached class file, before retransformable agent modified it in CFLH
258 jint _cached_class_file_len; // JVMTI: length of above 258 jint _cached_class_file_len; // JVMTI: length of above
259
260 volatile u2 _idnum_allocated_count; // JNI/JVMTI: increments with the addition of methods, old ids don't change
261
262 // Class states are defined as ClassState (see above).
263 // Place the _init_state here to utilize the unused 2-byte after
264 // _idnum_allocated_count.
265 u1 _init_state; // state of class
266 u1 _reference_type; // reference type
267
268
259 JvmtiCachedClassFieldMap* _jvmti_cached_class_field_map; // JVMTI: used during heap iteration 269 JvmtiCachedClassFieldMap* _jvmti_cached_class_field_map; // JVMTI: used during heap iteration
260 270
261 // Method array. 271 // Method array.
262 Array<Method*>* _methods; 272 Array<Method*>* _methods;
263 // Interface (Klass*s) this class declares locally to implement. 273 // Interface (Klass*s) this class declares locally to implement.
279 // [generic signature index] 289 // [generic signature index]
280 // [generic signature index] 290 // [generic signature index]
281 // ... 291 // ...
282 Array<u2>* _fields; 292 Array<u2>* _fields;
283 293
284 volatile u2 _idnum_allocated_count; // JNI/JVMTI: increments with the addition of methods, old ids don't change
285
286 // Class states are defined as ClassState (see above).
287 // Place the _init_state here to utilize the unused 2-byte after
288 // _idnum_allocated_count.
289 u1 _init_state; // state of class
290
291 u1 _reference_type; // reference type
292
293 // embedded Java vtable follows here 294 // embedded Java vtable follows here
294 // embedded Java itables follows here 295 // embedded Java itables follows here
295 // embedded static fields follows here 296 // embedded static fields follows here
296 // embedded nonstatic oop-map blocks follows here 297 // embedded nonstatic oop-map blocks follows here
297 // embedded implementor of this interface follows here 298 // embedded implementor of this interface follows here