Mercurial > hg > truffle
changeset 7831:fb0ef768d877
simplified class file path retrieval, added test
author | Michael Haupt <michael.haupt@oracle.com> |
---|---|
date | Wed, 20 Feb 2013 14:51:09 +0100 |
parents | a452bd211e43 |
children | 6d0f38d71af9 |
files | graal/com.oracle.graal.api.meta.test/src/com/oracle/graal/api/meta/test/TestResolvedJavaType.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedObjectType.java |
diffstat | 2 files changed, 19 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.api.meta.test/src/com/oracle/graal/api/meta/test/TestResolvedJavaType.java Wed Feb 20 14:49:27 2013 +0100 +++ b/graal/com.oracle.graal.api.meta.test/src/com/oracle/graal/api/meta/test/TestResolvedJavaType.java Wed Feb 20 14:51:09 2013 +0100 @@ -29,6 +29,7 @@ import java.lang.annotation.*; import java.lang.reflect.*; +import java.net.*; import java.util.*; import org.junit.*; @@ -556,4 +557,21 @@ } } } + + @Test + public void classFilePathTest() { + for (Class c : classes) { + ResolvedJavaType type = runtime.lookupJavaType(c); + URL path = type.getClassFilePath(); + if (type.isPrimitive() || type.isArray()) { + assertEquals(null, path); + } else { + assertNotNull(path); + String pathString = path.getPath(); + if (type.isLocal() || type.isMember()) { + assertTrue(pathString.indexOf('$') > 0); + } + } + } + } }
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedObjectType.java Wed Feb 20 14:49:27 2013 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedObjectType.java Wed Feb 20 14:51:09 2013 +0100 @@ -502,12 +502,7 @@ @Override public URL getClassFilePath() { Class<?> cls = mirror(); - String name = cls.getName(); - int dot = name.lastIndexOf('.'); - if (dot != -1) { - name = name.substring(dot + 1); - } - return cls.getResource(name + ".class"); + return cls.getResource(MetaUtil.getSimpleName(cls, true).replace('.', '$') + ".class"); } @Override