diff options
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java | 3 | ||||
-rw-r--r-- | plugin/icedteanp/java/sun/applet/PluginObjectStore.java | 23 |
3 files changed, 26 insertions, 10 deletions
@@ -1,5 +1,15 @@ 2011-03-31 Denis Lila <[email protected]> + * plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java + (store): Make private and remove fixme to make private. + * plugin/icedteanp/java/sun/applet/PluginObjectStore.java + (PluginObjectStore): Make it a singleton using enum. + (objects, counts, identifiers, lock, wrapped, nextUniqueIdentifier, + checkNeg): Made instance methods/members. + (getInstance): New static method. + +2011-03-31 Denis Lila <[email protected]> + * plugin/icedteanp/java/sun/applet/AppletSecurityContextManager.java * plugin/icedteanp/java/sun/applet/GetMemberPluginCallRequest.java * plugin/icedteanp/java/sun/applet/GetWindowPluginCallRequest.java 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; |