< prev index next >

src/hotspot/share/memory/universe.hpp

Print this page

        

@@ -93,22 +93,10 @@
   // Known classes in the VM
   static Klass* _typeArrayKlassObjs[T_LONG+1];
   static Klass* _objectArrayKlassObj;
 
   // Known objects in the VM
-
-  // Primitive objects
-  static oop _int_mirror;
-  static oop _float_mirror;
-  static oop _double_mirror;
-  static oop _byte_mirror;
-  static oop _bool_mirror;
-  static oop _char_mirror;
-  static oop _long_mirror;
-  static oop _short_mirror;
-  static oop _void_mirror;
-
   static OopHandle    _main_thread_group;             // Reference to the main thread group object
   static OopHandle    _system_thread_group;           // Reference to the system thread group object
 
   static OopHandle    _the_empty_class_array;         // Canonicalized obj array of type java.lang.Class
   static OopHandle    _the_null_string;               // A cache of "null" as a Java string

@@ -197,10 +185,14 @@
   static oop check_mirror(oop m) {
     assert(m != NULL, "mirror not initialized");
     return m;
   }
 
+  // CDS support
+  static void write_primitive_type_mirrors(SerializeClosure* f);
+  static void read_primitive_type_mirrors(SerializeClosure* f);
+
   // Debugging
   static int _verify_count;                           // number of verifies done
 
   // True during call to verify().  Should only be set/cleared in verify().
   static bool _verify_in_progress;

@@ -230,37 +222,28 @@
     assert(_typeArrayKlassObjs[t] != NULL, "domain check");
     return _typeArrayKlassObjs[t];
   }
 
   // Known objects in the VM
-  static oop int_mirror()                   { return check_mirror(_int_mirror); }
-  static oop float_mirror()                 { return check_mirror(_float_mirror); }
-  static oop double_mirror()                { return check_mirror(_double_mirror); }
-  static oop byte_mirror()                  { return check_mirror(_byte_mirror); }
-  static oop bool_mirror()                  { return check_mirror(_bool_mirror); }
-  static oop char_mirror()                  { return check_mirror(_char_mirror); }
-  static oop long_mirror()                  { return check_mirror(_long_mirror); }
-  static oop short_mirror()                 { return check_mirror(_short_mirror); }
-  static oop void_mirror()                  { return check_mirror(_void_mirror); }
-
-  static void set_int_mirror(oop m)         { _int_mirror = m;    }
-  static void set_float_mirror(oop m)       { _float_mirror = m;  }
-  static void set_double_mirror(oop m)      { _double_mirror = m; }
-  static void set_byte_mirror(oop m)        { _byte_mirror = m;   }
-  static void set_bool_mirror(oop m)        { _bool_mirror = m;   }
-  static void set_char_mirror(oop m)        { _char_mirror = m;   }
-  static void set_long_mirror(oop m)        { _long_mirror = m;   }
-  static void set_short_mirror(oop m)       { _short_mirror = m;  }
-  static void set_void_mirror(oop m)        { _void_mirror = m;   }
-
-  // table of same
-  static oop _mirrors[T_VOID+1];
-
-  static oop java_mirror(BasicType t) {
-    assert((uint)t < T_VOID+1, "range check");
-    return check_mirror(_mirrors[t]);
-  }
+  static oop int_mirror();
+  static oop float_mirror();
+  static oop double_mirror();
+  static oop byte_mirror();
+  static oop bool_mirror();
+  static oop char_mirror();
+  static oop long_mirror();
+  static oop short_mirror();
+  static oop void_mirror();
+
+  // Table of primitive type mirrors, excluding T_OBJECT and T_ARRAY
+  // but including T_VOID, hence the index including T_VOID
+  static OopHandle _mirrors[T_VOID+1];
+
+  static oop java_mirror(BasicType t);
+  static void replace_mirror(BasicType t, oop obj);
+  static void clear_basic_type_mirrors();
+
   static oop      main_thread_group();
   static void set_main_thread_group(oop group);
 
   static oop      system_thread_group();
   static void set_system_thread_group(oop group);
< prev index next >