From 92002f50bdb0358ddacacddd2fb8713489df6dd6 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Sat, 6 Nov 2004 23:22:05 +0000 Subject: [PATCH] URLClassLoader.java (URLClassLoader): Now package-private. * java/net/URLClassLoader.java (URLClassLoader): Now package-private. * java/nio/charset/CoderResult.java (CoderResult): Now package-private. (get): Likewise. (Cache): Likewise. Don't synchronize on `this'. * java/rmi/server/RMIClassLoader.java (MyClassLoader): Now package-private. * java/util/TimeZone.java (timezones): Now package-private. From-SVN: r90203 --- libjava/ChangeLog | 12 ++++++++++++ libjava/java/net/URLClassLoader.java | 8 ++++---- libjava/java/nio/charset/CoderResult.java | 20 ++++++++------------ libjava/java/rmi/server/RMIClassLoader.java | 3 ++- libjava/java/util/TimeZone.java | 3 ++- 5 files changed, 28 insertions(+), 18 deletions(-) diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 2fa28a3a5151..3e2c5f2613a3 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,15 @@ +2004-11-06 Tom Tromey + + * java/net/URLClassLoader.java (URLClassLoader): Now + package-private. + * java/nio/charset/CoderResult.java (CoderResult): Now + package-private. + (get): Likewise. + (Cache): Likewise. Don't synchronize on `this'. + * java/rmi/server/RMIClassLoader.java (MyClassLoader): Now + package-private. + * java/util/TimeZone.java (timezones): Now package-private. + 2004-11-06 Tom Tromey * java/security/Permissions.java (perms): Now package-private. diff --git a/libjava/java/net/URLClassLoader.java b/libjava/java/net/URLClassLoader.java index b991be8addf5..c3238e5ccafd 100644 --- a/libjava/java/net/URLClassLoader.java +++ b/libjava/java/net/URLClassLoader.java @@ -1,5 +1,5 @@ /* URLClassLoader.java -- ClassLoader that loads classes from one or more URLs - Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -661,8 +661,9 @@ public class URLClassLoader extends SecureClassLoader addURLs(urls); } + // Package-private to avoid a trampoline constructor. /** - * Private constructor used by the static + * Package-private constructor used by the static * newInstance(URL[]) method. Creates an * URLClassLoader with the given parent but without any * URLs yet. This is used to bypass the normal security @@ -674,8 +675,7 @@ public class URLClassLoader extends SecureClassLoader * * @param securityContext the security context of the unprivileged code. */ - private URLClassLoader(ClassLoader parent, - AccessControlContext securityContext) + URLClassLoader(ClassLoader parent, AccessControlContext securityContext) { super(parent); this.factory = null; diff --git a/libjava/java/nio/charset/CoderResult.java b/libjava/java/nio/charset/CoderResult.java index 49c66637c792..782418342b9a 100644 --- a/libjava/java/nio/charset/CoderResult.java +++ b/libjava/java/nio/charset/CoderResult.java @@ -1,5 +1,5 @@ /* CoderResult.java -- - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -82,7 +82,8 @@ public class CoderResult private final int type; private final int length; - private CoderResult (int type, int length) + // Package-private to avoid a trampoline constructor. + CoderResult (int type, int length) { this.type = type; this.length = length; @@ -157,19 +158,14 @@ public class CoderResult { private final HashMap cache; - private Cache () + // Package-private to avoid a trampoline constructor. + Cache () { - // If we didn't synchronize on this, then cache would be initialized - // without holding a lock. Undefined behavior would occur if the - // first thread to call get(int) was not the same as the one that - // called the constructor. - synchronized (this) - { - cache = new HashMap (); - } + cache = new HashMap (); } - private synchronized CoderResult get (int length) + // Package-private to avoid a trampoline. + synchronized CoderResult get (int length) { if (length <= 0) throw new IllegalArgumentException ("Non-positive length"); diff --git a/libjava/java/rmi/server/RMIClassLoader.java b/libjava/java/rmi/server/RMIClassLoader.java index f33ee80501c3..006bc4539f82 100644 --- a/libjava/java/rmi/server/RMIClassLoader.java +++ b/libjava/java/rmi/server/RMIClassLoader.java @@ -57,7 +57,8 @@ public class RMIClassLoader { private static class MyClassLoader extends URLClassLoader { - private MyClassLoader (URL[] urls, ClassLoader parent, String annotation) + // Package-private to avoid a trampoline constructor. + MyClassLoader (URL[] urls, ClassLoader parent, String annotation) { super (urls, parent); this.annotation = annotation; diff --git a/libjava/java/util/TimeZone.java b/libjava/java/util/TimeZone.java index 1e06e535611b..39cdcd3e239d 100644 --- a/libjava/java/util/TimeZone.java +++ b/libjava/java/util/TimeZone.java @@ -134,7 +134,8 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable /* initialize this static field lazily to overhead if * it is not needed: */ - private static synchronized HashMap timezones() + // Package-private to avoid a trampoline. + static synchronized HashMap timezones() { if (timezones0 == null) {