# HG changeset patch # User Bernhard Urban # Date 1371481669 -7200 # Node ID 1397c3e1f642a1c789bf3f50dfa90a7009bb337e # Parent 62ea8789b88a30e1b0ab785158dedb6f50c032ed HotSpotResolvedJavaField: add cache of java.lang.{Character,Byte,Short} to not embeddable list (GRAAL-290) running dacapo in AOT mode + verification revealed some more possible usages of cached boxed values (Character + Short). For completness I also added j.l.Byte. diff -r 62ea8789b88a -r 1397c3e1f642 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaField.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaField.java Mon Jun 17 20:39:24 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaField.java Mon Jun 17 17:07:49 2013 +0200 @@ -119,6 +119,18 @@ addResolvedToSet(Boolean.class.getDeclaredField("TRUE")); addResolvedToSet(Boolean.class.getDeclaredField("FALSE")); + Class characterCacheClass = Character.class.getDeclaredClasses()[0]; + assert "java.lang.Character$CharacterCache".equals(characterCacheClass.getName()); + addResolvedToSet(characterCacheClass.getDeclaredField("cache")); + + Class byteCacheClass = Byte.class.getDeclaredClasses()[0]; + assert "java.lang.Byte$ByteCache".equals(byteCacheClass.getName()); + addResolvedToSet(byteCacheClass.getDeclaredField("cache")); + + Class shortCacheClass = Short.class.getDeclaredClasses()[0]; + assert "java.lang.Short$ShortCache".equals(shortCacheClass.getName()); + addResolvedToSet(shortCacheClass.getDeclaredField("cache")); + Class integerCacheClass = Integer.class.getDeclaredClasses()[0]; assert "java.lang.Integer$IntegerCache".equals(integerCacheClass.getName()); addResolvedToSet(integerCacheClass.getDeclaredField("cache"));