Mercurial > hg > graal-compiler
diff graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfDynamicNode.java @ 15018:db4254246f9a
Remove Constant.forObject and Constant.asObject to improve compiler/VM separation
author | Christian Wimmer <christian.wimmer@oracle.com> |
---|---|
date | Mon, 07 Apr 2014 16:09:17 -0700 |
parents | da2431cc1506 |
children | 61363577a184 |
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfDynamicNode.java Mon Apr 07 23:35:41 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfDynamicNode.java Mon Apr 07 16:09:17 2014 -0700 @@ -60,12 +60,13 @@ public Node canonical(CanonicalizerTool tool) { assert object() != null : this; if (mirror().isConstant()) { - Class clazz = (Class) mirror().asConstant().asObject(); - ResolvedJavaType t = tool.getMetaAccess().lookupJavaType(clazz); - if (t.isPrimitive()) { - return LogicConstantNode.contradiction(graph()); - } else { - return graph().unique(new InstanceOfNode(t, object(), null)); + ResolvedJavaType t = tool.getConstantReflection().asJavaType(mirror().asConstant()); + if (t != null) { + if (t.isPrimitive()) { + return LogicConstantNode.contradiction(graph()); + } else { + return graph().unique(new InstanceOfNode(t, object(), null)); + } } } return this;