src/share/vm/oops/instanceKlass.hpp

changeset 3526
a79cb7c55012
parent 3401
8f8b94305aff
child 3528
b7b8b6d2f97d
equal deleted inserted replaced
3441:5f3fcd591768 3526:a79cb7c55012
238 u2 _minor_version; // minor version number of class file 238 u2 _minor_version; // minor version number of class file
239 u2 _major_version; // major version number of class file 239 u2 _major_version; // major version number of class file
240 Thread* _init_thread; // Pointer to current thread doing initialization (to handle recusive initialization) 240 Thread* _init_thread; // Pointer to current thread doing initialization (to handle recusive initialization)
241 int _vtable_len; // length of Java vtable (in words) 241 int _vtable_len; // length of Java vtable (in words)
242 int _itable_len; // length of Java itable (in words) 242 int _itable_len; // length of Java itable (in words)
243 ReferenceType _reference_type; // reference type
244 OopMapCache* volatile _oop_map_cache; // OopMapCache for all methods in the klass (allocated lazily) 243 OopMapCache* volatile _oop_map_cache; // OopMapCache for all methods in the klass (allocated lazily)
245 JNIid* _jni_ids; // First JNI identifier for static fields in this class 244 JNIid* _jni_ids; // First JNI identifier for static fields in this class
246 jmethodID* _methods_jmethod_ids; // jmethodIDs corresponding to method_idnum, or NULL if none 245 jmethodID* _methods_jmethod_ids; // jmethodIDs corresponding to method_idnum, or NULL if none
247 int* _methods_cached_itable_indices; // itable_index cache for JNI invoke corresponding to methods idnum, or NULL 246 int* _methods_cached_itable_indices; // itable_index cache for JNI invoke corresponding to methods idnum, or NULL
248 nmethodBucket* _dependencies; // list of dependent nmethods 247 nmethodBucket* _dependencies; // list of dependent nmethods
263 // Class states are defined as ClassState (see above). 262 // Class states are defined as ClassState (see above).
264 // Place the _init_state here to utilize the unused 2-byte after 263 // Place the _init_state here to utilize the unused 2-byte after
265 // _idnum_allocated_count. 264 // _idnum_allocated_count.
266 u1 _init_state; // state of class 265 u1 _init_state; // state of class
267 266
267 u1 _reference_type; // reference type
268
268 // embedded Java vtable follows here 269 // embedded Java vtable follows here
269 // embedded Java itables follows here 270 // embedded Java itables follows here
270 // embedded static fields follows here 271 // embedded static fields follows here
271 // embedded nonstatic oop-map blocks follows here 272 // embedded nonstatic oop-map blocks follows here
272 273
405 406
406 // set the class to initialized if no static initializer is present 407 // set the class to initialized if no static initializer is present
407 void eager_initialize(Thread *thread); 408 void eager_initialize(Thread *thread);
408 409
409 // reference type 410 // reference type
410 ReferenceType reference_type() const { return _reference_type; } 411 ReferenceType reference_type() const { return (ReferenceType)_reference_type; }
411 void set_reference_type(ReferenceType t) { _reference_type = t; } 412 void set_reference_type(ReferenceType t) {
413 assert(t == (u1)t, "overflow");
414 _reference_type = (u1)t;
415 }
412 416
413 static ByteSize reference_type_offset() { return in_ByteSize(sizeof(klassOopDesc) + offset_of(instanceKlass, _reference_type)); } 417 static ByteSize reference_type_offset() { return in_ByteSize(sizeof(klassOopDesc) + offset_of(instanceKlass, _reference_type)); }
414 418
415 // find local field, returns true if found 419 // find local field, returns true if found
416 bool find_local_field(Symbol* name, Symbol* sig, fieldDescriptor* fd) const; 420 bool find_local_field(Symbol* name, Symbol* sig, fieldDescriptor* fd) const;

mercurial