Mercurial > hg > truffle
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 |