diff options
author | Denis Lila <[email protected]> | 2011-03-31 15:15:29 -0400 |
---|---|---|
committer | Denis Lila <[email protected]> | 2011-03-31 15:15:29 -0400 |
commit | 5f5e4e60cbd14b87dfdba9206faa3843da33097d (patch) | |
tree | 941d1e2e300c627aad2b396165790681d5a8f0ef /plugin | |
parent | 948a84aa91411545d03c091ab7280905f34097f0 (diff) |
Made PluginObjectStore a singleton.
Diffstat (limited to 'plugin')
-rw-r--r-- | plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java | 3 | ||||
-rw-r--r-- | plugin/icedteanp/java/sun/applet/PluginObjectStore.java | 23 |
2 files changed, 16 insertions, 10 deletions
diff --git a/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java b/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java index 41e5954..e0fb88a 100644 --- a/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java +++ b/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java @@ -225,8 +225,7 @@ public class PluginAppletSecurityContext { private static Hashtable<ClassLoader, URL> classLoaders = new Hashtable<ClassLoader, URL>(); private static Hashtable<Integer, ClassLoader> instanceClassLoaders = new Hashtable<Integer, ClassLoader>(); - // FIXME: make private - public PluginObjectStore store = new PluginObjectStore(); + private PluginObjectStore store = PluginObjectStore.getInstance(); private Throwable throwable = null; private ClassLoader liveconnectLoader = ClassLoader.getSystemClassLoader(); int identifier = 0; diff --git a/plugin/icedteanp/java/sun/applet/PluginObjectStore.java b/plugin/icedteanp/java/sun/applet/PluginObjectStore.java index a80e327..07a94e5 100644 --- a/plugin/icedteanp/java/sun/applet/PluginObjectStore.java +++ b/plugin/icedteanp/java/sun/applet/PluginObjectStore.java @@ -40,14 +40,21 @@ package sun.applet; import java.util.HashMap; import java.util.Map; -public class PluginObjectStore { - private static HashMap<Integer, Object> objects = new HashMap<Integer, Object>(); - private static HashMap<Integer, Integer> counts = new HashMap<Integer, Integer>(); - private static HashMap<Object, Integer> identifiers = new HashMap<Object, Integer>(); - private static final Object lock = new Object(); +// Enums are the best way to implement singletons. +enum PluginObjectStore { + INSTANCE; - private static boolean wrapped = false; - private static int nextUniqueIdentifier = 1; + private HashMap<Integer, Object> objects = new HashMap<Integer, Object>(); + private HashMap<Integer, Integer> counts = new HashMap<Integer, Integer>(); + private HashMap<Object, Integer> identifiers = new HashMap<Object, Integer>(); + private final Object lock = new Object(); + + private boolean wrapped = false; + private int nextUniqueIdentifier = 1; + + public static PluginObjectStore getInstance() { + return INSTANCE; + } public Object getObject(Integer identifier) { synchronized(lock) { @@ -78,7 +85,7 @@ public class PluginObjectStore { } } - private static boolean checkNeg() { + private boolean checkNeg() { if (nextUniqueIdentifier < 1) { wrapped = true; nextUniqueIdentifier = 1; |