Mercurial > hg > graal-compiler
changeset 7279:9e27795a9d05
fixed crash where Class.isInstance() is called on a primitive class (e.g., int.class)
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Wed, 19 Dec 2012 12:39:47 +0100 |
parents | 346336325337 |
children | f368ec89e231 |
files | graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/ClassSnippets.java graal/com.oracle.graal.snippets.test/src/com/oracle/graal/snippets/InstanceOfDynamicTest.java |
diffstat | 2 files changed, 7 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/ClassSnippets.java Wed Dec 19 00:12:32 2012 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/ClassSnippets.java Wed Dec 19 12:39:47 2012 +0100 @@ -111,7 +111,6 @@ @MethodSubstitution(isStatic = false) public static boolean isInstance(final Class<?> thisObj, Object obj) { - return MaterializeNode.isInstance(thisObj, obj); + return !thisObj.isPrimitive() && MaterializeNode.isInstance(thisObj, obj); } - }
--- a/graal/com.oracle.graal.snippets.test/src/com/oracle/graal/snippets/InstanceOfDynamicTest.java Wed Dec 19 00:12:32 2012 +0100 +++ b/graal/com.oracle.graal.snippets.test/src/com/oracle/graal/snippets/InstanceOfDynamicTest.java Wed Dec 19 12:39:47 2012 +0100 @@ -57,6 +57,9 @@ test("isInstanceDynamic", String.class, null); test("isInstanceDynamic", String.class, "object"); test("isInstanceDynamic", String.class, Object.class); + test("isInstanceDynamic", int.class, null); + test("isInstanceDynamic", int.class, "Object"); + test("isInstanceDynamic", int.class, Object.class); } @Test @@ -64,6 +67,9 @@ test("isInstanceIntDynamic", String.class, null); test("isInstanceIntDynamic", String.class, "object"); test("isInstanceIntDynamic", String.class, Object.class); + test("isInstanceIntDynamic", int.class, null); + test("isInstanceIntDynamic", int.class, "Object"); + test("isInstanceIntDynamic", int.class, Object.class); } public static boolean isStringDynamic(Object o) {