equal
deleted
inserted
replaced
42 private static sun.jvm.hotspot.types.OopField classLoaderKlassField; |
42 private static sun.jvm.hotspot.types.OopField classLoaderKlassField; |
43 private static sun.jvm.hotspot.types.OopField stringKlassField; |
43 private static sun.jvm.hotspot.types.OopField stringKlassField; |
44 private static sun.jvm.hotspot.types.OopField systemKlassField; |
44 private static sun.jvm.hotspot.types.OopField systemKlassField; |
45 private static sun.jvm.hotspot.types.OopField threadKlassField; |
45 private static sun.jvm.hotspot.types.OopField threadKlassField; |
46 private static sun.jvm.hotspot.types.OopField threadGroupKlassField; |
46 private static sun.jvm.hotspot.types.OopField threadGroupKlassField; |
|
47 private static sun.jvm.hotspot.types.OopField methodHandleKlassField; |
47 |
48 |
48 static { |
49 static { |
49 VM.registerVMInitializedObserver(new Observer() { |
50 VM.registerVMInitializedObserver(new Observer() { |
50 public void update(Observable o, Object data) { |
51 public void update(Observable o, Object data) { |
51 initialize(VM.getVM().getTypeDataBase()); |
52 initialize(VM.getVM().getTypeDataBase()); |
67 classLoaderKlassField = type.getOopField(WK_KLASS("ClassLoader_klass")); |
68 classLoaderKlassField = type.getOopField(WK_KLASS("ClassLoader_klass")); |
68 stringKlassField = type.getOopField(WK_KLASS("String_klass")); |
69 stringKlassField = type.getOopField(WK_KLASS("String_klass")); |
69 systemKlassField = type.getOopField(WK_KLASS("System_klass")); |
70 systemKlassField = type.getOopField(WK_KLASS("System_klass")); |
70 threadKlassField = type.getOopField(WK_KLASS("Thread_klass")); |
71 threadKlassField = type.getOopField(WK_KLASS("Thread_klass")); |
71 threadGroupKlassField = type.getOopField(WK_KLASS("ThreadGroup_klass")); |
72 threadGroupKlassField = type.getOopField(WK_KLASS("ThreadGroup_klass")); |
|
73 methodHandleKlassField = type.getOopField(WK_KLASS("MethodHandle_klass")); |
72 } |
74 } |
73 |
75 |
74 // This WK functions must follow the definitions in systemDictionary.hpp: |
76 // This WK functions must follow the definitions in systemDictionary.hpp: |
75 private static String WK_KLASS(String name) { |
77 private static String WK_KLASS(String name) { |
76 //#define WK_KLASS(name) _well_known_klasses[SystemDictionary::WK_KLASS_ENUM_NAME(name)] |
78 //#define WK_KLASS(name) _well_known_klasses[SystemDictionary::WK_KLASS_ENUM_NAME(name)] |
123 return (InstanceKlass) newOop(classLoaderKlassField.getValue()); |
125 return (InstanceKlass) newOop(classLoaderKlassField.getValue()); |
124 } |
126 } |
125 |
127 |
126 public static InstanceKlass getSystemKlass() { |
128 public static InstanceKlass getSystemKlass() { |
127 return (InstanceKlass) newOop(systemKlassField.getValue()); |
129 return (InstanceKlass) newOop(systemKlassField.getValue()); |
|
130 } |
|
131 |
|
132 public static InstanceKlass getMethodHandleKlass() { |
|
133 return (InstanceKlass) newOop(methodHandleKlassField.getValue()); |
128 } |
134 } |
129 |
135 |
130 public InstanceKlass getAbstractOwnableSynchronizerKlass() { |
136 public InstanceKlass getAbstractOwnableSynchronizerKlass() { |
131 return (InstanceKlass) find("java/util/concurrent/locks/AbstractOwnableSynchronizer", |
137 return (InstanceKlass) find("java/util/concurrent/locks/AbstractOwnableSynchronizer", |
132 null, null); |
138 null, null); |