aboutsummaryrefslogtreecommitdiffstats
path: root/plugin/icedteanp/java/sun/applet/PluginObjectStore.java
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/icedteanp/java/sun/applet/PluginObjectStore.java')
-rw-r--r--plugin/icedteanp/java/sun/applet/PluginObjectStore.java23
1 files changed, 15 insertions, 8 deletions
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;