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 }
|