diff c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotType.java @ 1422:3483ec571caf

* using reflected objects instead of oops * removed scratch from allocatable registers * instanceof xir snippet * arraylength xir snippet * exceptionobject xir snippet * VMEntries and VMExits as interfaces * calls to VMEntries and VMExits are routet through logging proxies
author Lukas Stadler <lukas.stadler@oracle.com>
date Mon, 02 Aug 2010 15:44:38 -0700
parents 6223633ce7dd
children 760213a60e8b
line wrap: on
line diff
--- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotType.java	Fri Jul 23 15:53:02 2010 -0700
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotType.java	Mon Aug 02 15:44:38 2010 -0700
@@ -6,11 +6,13 @@
 
 public class HotSpotType implements RiType {
 
-    final Object klassOop;
+    // do not query this class object directly, use the VMEntries methods instead!
+    // (otherwise this query won't be recorded correctly)
+    final Class<?> klass;
 
-    public HotSpotType(Object o) {
-        this.klassOop = o;
-        assert klassOop != null;
+    public HotSpotType(Class<?> klass) {
+        this.klass = klass;
+        assert klass != null;
     }
 
     @Override
@@ -69,7 +71,7 @@
     @Override
     public boolean isArrayClass() {
         System.out.println("Checking for array class " + name());
-        return Compiler.getVMEntries().RiType_isArrayClass(klassOop);
+        return Compiler.getVMEntries().RiType_isArrayClass(klass);
     }
 
     @Override
@@ -86,12 +88,12 @@
 
     @Override
     public boolean isInstanceClass() {
-        return Compiler.getVMEntries().RiType_isInstanceClass(klassOop);
+        return Compiler.getVMEntries().RiType_isInstanceClass(klass);
     }
 
     @Override
     public boolean isInterface() {
-        return Compiler.getVMEntries().RiType_isInterface(klassOop);
+        return Compiler.getVMEntries().RiType_isInterface(klass);
     }
 
     @Override
@@ -106,8 +108,8 @@
     }
 
     @Override
-    public Class< ? > javaClass() {
-        return Compiler.getVMEntries().RiType_javaClass(klassOop);
+    public Class<?> javaClass() {
+        return klass;
     }
 
     @Override
@@ -117,7 +119,7 @@
 
     @Override
     public String name() {
-        return Compiler.getVMEntries().RiType_name(klassOop);
+        return Compiler.getVMEntries().RiType_name(klass);
     }
 
     @Override
@@ -126,8 +128,8 @@
         return null;
     }
 
-    public Object klassOop() {
-        return klassOop;
+    public Class<?> klass() {
+        return klass;
     }
 
 }