home *** CD-ROM | disk | FTP | other *** search
- package opera;
-
- import java.util.Hashtable;
-
- public class EcmaScriptObject {
- private static Hashtable all_objects = new Hashtable();
- private int es_object;
- private int runtime;
- private int ref_count = 0;
-
- public static EcmaScriptObject getObject(int var0, int var1) {
- EcmaScriptObject var2 = (EcmaScriptObject)all_objects.get(new Integer(var0));
- if (var2 == null) {
- var2 = new EcmaScriptObject(var0, var1);
- all_objects.put(new Integer(var0), var2);
- }
-
- return var2;
- }
-
- private EcmaScriptObject(int var1, int var2) {
- this.es_object = var1;
- this.runtime = var2;
- if (this.es_object != 0) {
- this.externalRef(this.es_object);
- }
-
- }
-
- public void ref() {
- ++this.ref_count;
- }
-
- public void unref() {
- if (--this.ref_count <= 0) {
- all_objects.remove(new Integer(this.es_object));
- }
-
- }
-
- public int getESObjectPtr() {
- return this.es_object;
- }
-
- public int getESRuntimePtr() {
- return this.runtime;
- }
-
- private native void externalRef(int var1);
-
- private native void externalUnref(int var1);
-
- protected void finalize() {
- try {
- if (this.es_object != 0) {
- this.externalUnref(this.es_object);
- }
-
- super.finalize();
- } catch (Throwable var2) {
- }
-
- }
- }
-