aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java3
-rw-r--r--plugin/icedteanp/java/sun/applet/PluginObjectStore.java23
3 files changed, 26 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 75d6780..d5d3eed 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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;