From a63b229d5a73cbe2e4a32077dcd95fe357a8ea1e Mon Sep 17 00:00:00 2001 From: "norris%netscape.com" Date: Wed, 3 May 2000 21:55:09 +0000 Subject: [PATCH] Clean up; remove need for synchronize git-svn-id: svn://10.0.0.236/trunk@68148 18797224-902f-48f8-a5cc-f745e15eee43 --- .../org/mozilla/javascript/JavaMembers.java | 36 +++++++++---------- .../org/mozilla/javascript/JavaMembers.java | 36 +++++++++---------- 2 files changed, 32 insertions(+), 40 deletions(-) diff --git a/mozilla/js/rhino/org/mozilla/javascript/JavaMembers.java b/mozilla/js/rhino/org/mozilla/javascript/JavaMembers.java index b443866f550..0355b5de9b1 100644 --- a/mozilla/js/rhino/org/mozilla/javascript/JavaMembers.java +++ b/mozilla/js/rhino/org/mozilla/javascript/JavaMembers.java @@ -474,7 +474,8 @@ class JavaMembers { Class staticType) { Class cl = dynamicType; - JavaMembers members = (JavaMembers) classTable.get(cl); + Hashtable ct = classTable; // use local reference to avoid synchronize + JavaMembers members = (JavaMembers) ct.get(cl); if (members != null) return members; if (staticType != null && staticType != dynamicType && @@ -483,26 +484,21 @@ class JavaMembers { { cl = staticType; } - synchronized (classTable) { - members = (JavaMembers) classTable.get(cl); - if (members != null) - return members; - try { - members = new JavaMembers(scope, cl); - } catch (SecurityException e) { - // Reflection may fail for objects that are in a restricted - // access package (e.g. sun.*). If we get a security - // exception, try again with the static type. Otherwise, - // rethrow the exception. - if (cl != staticType) - members = new JavaMembers(scope, staticType); - else - throw e; - } - if (Context.isCachingEnabled) - classTable.put(cl, members); - return members; + try { + members = new JavaMembers(scope, cl); + } catch (SecurityException e) { + // Reflection may fail for objects that are in a restricted + // access package (e.g. sun.*). If we get a security + // exception, try again with the static type. Otherwise, + // rethrow the exception. + if (cl != staticType) + members = new JavaMembers(scope, staticType); + else + throw e; } + if (Context.isCachingEnabled) + ct.put(cl, members); + return members; } RuntimeException reportMemberNotFound(String memberName) { diff --git a/mozilla/js/rhino/src/org/mozilla/javascript/JavaMembers.java b/mozilla/js/rhino/src/org/mozilla/javascript/JavaMembers.java index b443866f550..0355b5de9b1 100644 --- a/mozilla/js/rhino/src/org/mozilla/javascript/JavaMembers.java +++ b/mozilla/js/rhino/src/org/mozilla/javascript/JavaMembers.java @@ -474,7 +474,8 @@ class JavaMembers { Class staticType) { Class cl = dynamicType; - JavaMembers members = (JavaMembers) classTable.get(cl); + Hashtable ct = classTable; // use local reference to avoid synchronize + JavaMembers members = (JavaMembers) ct.get(cl); if (members != null) return members; if (staticType != null && staticType != dynamicType && @@ -483,26 +484,21 @@ class JavaMembers { { cl = staticType; } - synchronized (classTable) { - members = (JavaMembers) classTable.get(cl); - if (members != null) - return members; - try { - members = new JavaMembers(scope, cl); - } catch (SecurityException e) { - // Reflection may fail for objects that are in a restricted - // access package (e.g. sun.*). If we get a security - // exception, try again with the static type. Otherwise, - // rethrow the exception. - if (cl != staticType) - members = new JavaMembers(scope, staticType); - else - throw e; - } - if (Context.isCachingEnabled) - classTable.put(cl, members); - return members; + try { + members = new JavaMembers(scope, cl); + } catch (SecurityException e) { + // Reflection may fail for objects that are in a restricted + // access package (e.g. sun.*). If we get a security + // exception, try again with the static type. Otherwise, + // rethrow the exception. + if (cl != staticType) + members = new JavaMembers(scope, staticType); + else + throw e; } + if (Context.isCachingEnabled) + ct.put(cl, members); + return members; } RuntimeException reportMemberNotFound(String memberName) {