hotspot/src/share/vm/oops/instanceKlass.hpp
changeset 11729 77f7d412d0a1
parent 11440 dea12ec80745
child 11731 94a9493c5f04
--- a/hotspot/src/share/vm/oops/instanceKlass.hpp	Fri Jan 20 17:07:33 2012 -0800
+++ b/hotspot/src/share/vm/oops/instanceKlass.hpp	Wed Jan 25 17:40:51 2012 -0500
@@ -240,7 +240,6 @@
   Thread*         _init_thread;          // Pointer to current thread doing initialization (to handle recusive initialization)
   int             _vtable_len;           // length of Java vtable (in words)
   int             _itable_len;           // length of Java itable (in words)
-  ReferenceType   _reference_type;       // reference type
   OopMapCache*    volatile _oop_map_cache;   // OopMapCache for all methods in the klass (allocated lazily)
   JNIid*          _jni_ids;              // First JNI identifier for static fields in this class
   jmethodID*      _methods_jmethod_ids;  // jmethodIDs corresponding to method_idnum, or NULL if none
@@ -265,6 +264,8 @@
   // _idnum_allocated_count.
   u1              _init_state;                    // state of class
 
+  u1              _reference_type;                // reference type
+
   // embedded Java vtable follows here
   // embedded Java itables follows here
   // embedded static fields follows here
@@ -407,8 +408,11 @@
   void eager_initialize(Thread *thread);
 
   // reference type
-  ReferenceType reference_type() const     { return _reference_type; }
-  void set_reference_type(ReferenceType t) { _reference_type = t; }
+  ReferenceType reference_type() const     { return (ReferenceType)_reference_type; }
+  void set_reference_type(ReferenceType t) {
+    assert(t == (u1)t, "overflow");
+    _reference_type = (u1)t;
+  }
 
   static ByteSize reference_type_offset() { return in_ByteSize(sizeof(klassOopDesc) + offset_of(instanceKlass, _reference_type)); }