changeset 9481:1964cf13c376

Relax the type requirements for CheckCastDynamicNode
author Christian Wimmer <christian.wimmer@oracle.com>
date Wed, 01 May 2013 11:27:45 -0700
parents d9fd6af5d200
children 37345671860c
files graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastDynamicNode.java
diffstat 1 files changed, 1 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastDynamicNode.java	Wed May 01 10:01:17 2013 -0700
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastDynamicNode.java	Wed May 01 11:27:45 2013 -0700
@@ -52,9 +52,6 @@
         this.type = type;
         this.object = object;
         this.forStoreCheck = forStoreCheck;
-        assert type.kind() == Kind.Object;
-        assert type.objectStamp().isExactType();
-        assert type.objectStamp().type().getName().equals("Ljava/lang/Class;");
     }
 
     public boolean isForStoreCheck() {
@@ -82,7 +79,7 @@
         if (object().objectStamp().alwaysNull()) {
             return object();
         }
-        if (type().isConstant()) {
+        if (type().isConstant() && type().kind() == Kind.Object && type().asConstant().asObject() instanceof Class) {
             Class clazz = (Class) type().asConstant().asObject();
             ResolvedJavaType t = tool.runtime().lookupJavaType(clazz);
             return graph().add(new CheckCastNode(t, object(), null, forStoreCheck));