< prev index next >

src/hotspot/share/memory/universe.hpp

Print this page

        

@@ -37,10 +37,11 @@
 // support is provided. Allocation by the interpreter and compiled code is done inline
 // and bails out to Scavenge::invoke_and_allocate.
 
 class CollectedHeap;
 class DeferredObjAllocEvent;
+class OopStorage;
 
 
 // A helper class for caching a Method* when the user of the cache
 // only cares about the latest version of the Method*.  This cache safely
 // interacts with the RedefineClasses API.

@@ -122,10 +123,13 @@
   static Klass* _doubleArrayKlassObj;
   static Klass* _typeArrayKlassObjs[T_VOID+1];
 
   static Klass* _objectArrayKlassObj;
 
+  // VM weak OopStorage object.
+  static OopStorage* _vm_weak_oop_storage;
+
   // Known objects in the VM
 
   // Primitive objects
   static oop _int_mirror;
   static oop _float_mirror;

@@ -227,10 +231,12 @@
 
   static void reinitialize_vtable_of(Klass* k, TRAPS);
   static void reinitialize_itables(TRAPS);
   static void compute_base_vtable_size();             // compute vtable size of class Object
 
+  static void initialize_oop_storage();
+
   static void genesis(TRAPS);                         // Create the initial world
 
   // Mirrors for primitive classes (created eagerly)
   static oop check_mirror(oop m) {
     assert(m != NULL, "mirror not initialized");

@@ -286,10 +292,12 @@
     assert((uint)t < T_VOID+1, "range check for type: %s", type2name(t));
     assert(_typeArrayKlassObjs[t] != NULL, "domain check");
     return _typeArrayKlassObjs[t];
   }
 
+  static OopStorage* vm_weak_oop_storage();
+
   // 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); }
< prev index next >