diff options
author | Tom Tromey <tromey@gcc.gnu.org> | 2005-09-23 21:31:04 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2005-09-23 21:31:04 +0000 |
commit | 1ea63ef8be1cc54dd0de9d82c684713a1dcf1e06 (patch) | |
tree | 3ca4b2e68dc14c3128b9c781d23f1d0b1f2bee49 /libjava/classpath/java/nio/charset | |
parent | 9b044d19517541c95681d35a92dbc81e6e21d94f (diff) | |
download | gcc-1ea63ef8be1cc54dd0de9d82c684713a1dcf1e06.zip gcc-1ea63ef8be1cc54dd0de9d82c684713a1dcf1e06.tar.gz gcc-1ea63ef8be1cc54dd0de9d82c684713a1dcf1e06.tar.bz2 |
Imported Classpath 0.18.
* sources.am, Makefile.in: Updated.
* Makefile.am (nat_source_files): Removed natProxy.cc.
* java/lang/reflect/natProxy.cc: Removed.
* gnu/classpath/jdwp/VMFrame.java,
gnu/classpath/jdwp/VMIdManager.java,
gnu/classpath/jdwp/VMVirtualMachine.java,
java/lang/reflect/VMProxy.java: New files.
2005-09-23 Thomas Fitzsimmons <fitzsim@redhat.com>
* scripts/makemake.tcl (verbose): Add gnu/java/awt/peer/qt to BC
list.
2005-09-23 Thomas Fitzsimmons <fitzsim@redhat.com>
* gnu/java/net/DefaultContentHandlerFactory.java (getContent):
Remove ClasspathToolkit references.
2005-09-23 Thomas Fitzsimmons <fitzsim@redhat.com>
* gnu/awt/xlib/XCanvasPeer.java: Add new peer methods.
* gnu/awt/xlib/XFramePeer.java: Likewise.
* gnu/awt/xlib/XGraphicsConfiguration.java: Likewise.
2005-09-23 Thomas Fitzsimmons <fitzsim@redhat.com>
* Makefile.am (libgcjawt_la_SOURCES): Remove jawt.c. Add
classpath/native/jawt/jawt.c.
* Makefile.in: Regenerate.
* jawt.c: Remove file.
* include/Makefile.am (tool_include__HEADERS): Remove jawt.h and
jawt_md.h. Add ../classpath/include/jawt.h and
../classpath/include/jawt_md.h.
* include/Makefile.in: Regenerate.
* include/jawt.h: Regenerate.
* include/jawt_md.h: Regenerate.
From-SVN: r104586
Diffstat (limited to 'libjava/classpath/java/nio/charset')
-rw-r--r-- | libjava/classpath/java/nio/charset/Charset.java | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/libjava/classpath/java/nio/charset/Charset.java b/libjava/classpath/java/nio/charset/Charset.java index 6de2917..0476b0d 100644 --- a/libjava/classpath/java/nio/charset/Charset.java +++ b/libjava/classpath/java/nio/charset/Charset.java @@ -68,9 +68,9 @@ public abstract class Charset implements Comparable { private CharsetEncoder cachedEncoder; private CharsetDecoder cachedDecoder; - + /** - * Charset providers. + * Extra Charset providers. */ private static CharsetProvider[] providers; @@ -204,13 +204,19 @@ public abstract class Charset implements Comparable private static Charset charsetForName(String charsetName) { checkName (charsetName); - Charset cs = null; - CharsetProvider[] providers = providers2(); - for (int i = 0; i < providers.length; i++) + // Try the default provider first + // (so we don't need to load external providers unless really necessary) + // if it is an exotic charset try loading the external providers. + Charset cs = provider().charsetForName(charsetName); + if (cs == null) { - cs = providers[i].charsetForName(charsetName); - if (cs != null) - break; + CharsetProvider[] providers = providers2(); + for (int i = 0; i < providers.length; i++) + { + cs = providers[i].charsetForName(charsetName); + if (cs != null) + break; + } } return cs; } @@ -218,6 +224,11 @@ public abstract class Charset implements Comparable public static SortedMap availableCharsets() { TreeMap charsets = new TreeMap(String.CASE_INSENSITIVE_ORDER); + for (Iterator i = provider().charsets(); i.hasNext(); ) + { + Charset cs = (Charset) i.next(); + charsets.put(cs.name(), cs); + } CharsetProvider[] providers = providers2(); for (int j = 0; j < providers.length; j++) @@ -246,7 +257,7 @@ public abstract class Charset implements Comparable /** * We need to support multiple providers, reading them from * java.nio.charset.spi.CharsetProvider in the resource directory - * META-INF/services. + * META-INF/services. This returns the "extra" charset providers. */ private static CharsetProvider[] providers2() { @@ -257,7 +268,6 @@ public abstract class Charset implements Comparable Enumeration en = ClassLoader.getSystemResources ("META-INF/services/java.nio.charset.spi.CharsetProvider"); LinkedHashSet set = new LinkedHashSet(); - set.add(provider()); while (en.hasMoreElements()) { BufferedReader rdr = new BufferedReader(new InputStreamReader |