diff --git a/src/builder/java/speiger/src/builder/GlobalVariables.java b/src/builder/java/speiger/src/builder/GlobalVariables.java index fa126bcd..63b038b5 100644 --- a/src/builder/java/speiger/src/builder/GlobalVariables.java +++ b/src/builder/java/speiger/src/builder/GlobalVariables.java @@ -256,6 +256,7 @@ public class GlobalVariables { flags.add("TYPE_"+type.getCapType()); flags.add("VALUE_"+valueType.getCapType()); +// flags.add("UNSAVE_ENUM"); //if we want to use shared constants... Not compile save if(type == valueType) flags.add("SAME_TYPE"); if(type.hasFunction(valueType)) flags.add("JDK_FUNCTION"); if(!type.needsCustomJDKType()) flags.add("JDK_TYPE"); diff --git a/src/builder/resources/speiger/assets/collections/templates/maps/impl/misc/EnumMap.template b/src/builder/resources/speiger/assets/collections/templates/maps/impl/misc/EnumMap.template index 6d402240..3b05849b 100644 --- a/src/builder/resources/speiger/assets/collections/templates/maps/impl/misc/EnumMap.template +++ b/src/builder/resources/speiger/assets/collections/templates/maps/impl/misc/EnumMap.template @@ -16,7 +16,9 @@ import speiger.src.collections.objects.maps.abstracts.ABSTRACT_MAP; import speiger.src.collections.objects.maps.interfaces.MAP; import speiger.src.collections.objects.sets.AbstractObjectSet; import speiger.src.collections.objects.sets.ObjectSet; +#if UNSAVE_ENUM import sun.misc.SharedSecrets; +#endif /** * A Type Specific EnumMap implementation that allows for Primitive Values. @@ -211,8 +213,12 @@ public class ENUM_MAP KEY_ENUM_VALUE_GENERIC_TYPE extends ABSTRACT_MAP KEY_VALUE onNodeRemoved(index); } protected boolean isSet(int index) { return (present[index >> 6] & (1L << index)) != 0; } - private static > K[] getKeyUniverse(Class keyType) { + private static > K[] getKeyUniverse(Class keyType) { +#if UNSAVE_ENUM + return keyType.getEnumConstants(); +#else return SharedSecrets.getJavaLangAccess().getEnumConstantsShared(keyType); +#endif } class EntrySet extends AbstractObjectSet {