aboutsummaryrefslogtreecommitdiffstats
path: root/plugin
diff options
context:
space:
mode:
authorDenis Lila <[email protected]>2011-03-31 15:15:29 -0400
committerDenis Lila <[email protected]>2011-03-31 15:15:29 -0400
commit5f5e4e60cbd14b87dfdba9206faa3843da33097d (patch)
tree941d1e2e300c627aad2b396165790681d5a8f0ef /plugin
parent948a84aa91411545d03c091ab7280905f34097f0 (diff)
Made PluginObjectStore a singleton.
Diffstat (limited to 'plugin')
-rw-r--r--plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java3
-rw-r--r--plugin/icedteanp/java/sun/applet/PluginObjectStore.java23
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;