< prev index next >

src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/VM.java

Print this page
rev 50373 : 8195097: Make it possible to process StringTable outside safepoint
Reviewed-by:


  62     reasons, this implies that the constructor of VM can not
  63     instantiate any such objects, since VM.soleInstance will not have
  64     been set yet. This is a bootstrapping issue which may have to be
  65     revisited later.) </P>
  66 */
  67 
  68 public class VM {
  69   private static VM    soleInstance;
  70   private static List  vmInitializedObservers = new ArrayList();
  71   private List         vmResumedObservers   = new ArrayList();
  72   private List         vmSuspendedObservers = new ArrayList();
  73   private TypeDataBase db;
  74   private boolean      isBigEndian;
  75   /** This is only present if in a debugging system */
  76   private JVMDebugger  debugger;
  77   private long         stackBias;
  78   private long         logAddressSize;
  79   private Universe     universe;
  80   private ObjectHeap   heap;
  81   private SymbolTable  symbols;
  82   private StringTable  strings;
  83   private SystemDictionary dict;
  84   private ClassLoaderDataGraph cldGraph;
  85   private Threads      threads;
  86   private ObjectSynchronizer synchronizer;
  87   private JNIHandles   handles;
  88   private Interpreter  interpreter;
  89   private StubRoutines stubRoutines;
  90   private FileMapInfo  fileMapInfo;
  91   private Bytes        bytes;
  92 
  93   /** Flag indicating if JVMTI support is included in the build */
  94   private boolean      isJvmtiSupported;
  95   /** Flags indicating whether we are attached to a core, C1, or C2 build */
  96   private boolean      usingClientCompiler;
  97   private boolean      usingServerCompiler;
  98   /** alignment constants */
  99   private boolean      isLP64;
 100   private int          bytesPerLong;
 101   private int          bytesPerWord;
 102   private int          objectAlignmentInBytes;


 636 
 637   public Universe    getUniverse() {
 638     if (universe == null) {
 639       universe = new Universe();
 640     }
 641     return universe;
 642   }
 643 
 644   public ObjectHeap  getObjectHeap() {
 645     if (heap == null) {
 646       heap = new ObjectHeap(db);
 647     }
 648     return heap;
 649   }
 650 
 651   public SymbolTable getSymbolTable() {
 652     if (symbols == null) {
 653       symbols = SymbolTable.getTheTable();
 654     }
 655     return symbols;
 656   }
 657 
 658   public StringTable getStringTable() {
 659     if (strings == null) {
 660       strings = StringTable.getTheTable();
 661     }
 662     return strings;
 663   }
 664 
 665   public SystemDictionary getSystemDictionary() {
 666     if (dict == null) {
 667       dict = new SystemDictionary();
 668     }
 669     return dict;
 670   }
 671 
 672   public ClassLoaderDataGraph getClassLoaderDataGraph() {
 673     if (cldGraph == null) {
 674       cldGraph = new ClassLoaderDataGraph();
 675     }
 676     return cldGraph;
 677   }
 678 
 679   public Threads     getThreads() {
 680     if (threads == null) {
 681       threads = new Threads();
 682     }




  62     reasons, this implies that the constructor of VM can not
  63     instantiate any such objects, since VM.soleInstance will not have
  64     been set yet. This is a bootstrapping issue which may have to be
  65     revisited later.) </P>
  66 */
  67 
  68 public class VM {
  69   private static VM    soleInstance;
  70   private static List  vmInitializedObservers = new ArrayList();
  71   private List         vmResumedObservers   = new ArrayList();
  72   private List         vmSuspendedObservers = new ArrayList();
  73   private TypeDataBase db;
  74   private boolean      isBigEndian;
  75   /** This is only present if in a debugging system */
  76   private JVMDebugger  debugger;
  77   private long         stackBias;
  78   private long         logAddressSize;
  79   private Universe     universe;
  80   private ObjectHeap   heap;
  81   private SymbolTable  symbols;

  82   private SystemDictionary dict;
  83   private ClassLoaderDataGraph cldGraph;
  84   private Threads      threads;
  85   private ObjectSynchronizer synchronizer;
  86   private JNIHandles   handles;
  87   private Interpreter  interpreter;
  88   private StubRoutines stubRoutines;
  89   private FileMapInfo  fileMapInfo;
  90   private Bytes        bytes;
  91 
  92   /** Flag indicating if JVMTI support is included in the build */
  93   private boolean      isJvmtiSupported;
  94   /** Flags indicating whether we are attached to a core, C1, or C2 build */
  95   private boolean      usingClientCompiler;
  96   private boolean      usingServerCompiler;
  97   /** alignment constants */
  98   private boolean      isLP64;
  99   private int          bytesPerLong;
 100   private int          bytesPerWord;
 101   private int          objectAlignmentInBytes;


 635 
 636   public Universe    getUniverse() {
 637     if (universe == null) {
 638       universe = new Universe();
 639     }
 640     return universe;
 641   }
 642 
 643   public ObjectHeap  getObjectHeap() {
 644     if (heap == null) {
 645       heap = new ObjectHeap(db);
 646     }
 647     return heap;
 648   }
 649 
 650   public SymbolTable getSymbolTable() {
 651     if (symbols == null) {
 652       symbols = SymbolTable.getTheTable();
 653     }
 654     return symbols;







 655   }
 656 
 657   public SystemDictionary getSystemDictionary() {
 658     if (dict == null) {
 659       dict = new SystemDictionary();
 660     }
 661     return dict;
 662   }
 663 
 664   public ClassLoaderDataGraph getClassLoaderDataGraph() {
 665     if (cldGraph == null) {
 666       cldGraph = new ClassLoaderDataGraph();
 667     }
 668     return cldGraph;
 669   }
 670 
 671   public Threads     getThreads() {
 672     if (threads == null) {
 673       threads = new Threads();
 674     }


< prev index next >