Mercurial > hg > release > icedtea6-1.10
view patches/openjdk/6792400-Avoid_loading_Normalizer_resources.patch @ 2564:4515e31b48fa
Backport of: 6792400: Avoid loading of Normalizer resources for simple uses
author | ptisnovs |
---|---|
date | Wed, 18 Apr 2012 18:41:40 +0200 |
parents | |
children |
line wrap: on
line source
# HG changeset patch # User peytoia # Date 1245934539 -32400 # Node ID e0707baa159364ff923bf901eab1b6c83d4cf092 # Parent 4d54d6e7bcefd16bcc9a26b93937359f031389ca 6792400: Avoid loading of Normalizer resources for simple uses Reviewed-by: okutsu diff -r 4d54d6e7bcef -r e0707baa1593 src/share/classes/sun/text/normalizer/NormalizerBase.java --- openjdk/jdk/src/share/classes/sun/text/normalizer/NormalizerBase.java Thu Jun 25 02:42:26 2009 -0700 +++ openjdk/jdk/src/share/classes/sun/text/normalizer/NormalizerBase.java Thu Jun 25 21:55:39 2009 +0900 @@ -1598,15 +1598,34 @@ * @param options the optional features to be enabled. */ public static String normalize(String str, Normalizer.Form form, int options) { + int len = str.length(); + boolean asciiOnly = true; + if (len < 80) { + for (int i = 0; i < len; i++) { + if (str.charAt(i) > 127) { + asciiOnly = false; + break; + } + } + } else { + char[] a = str.toCharArray(); + for (int i = 0; i < len; i++) { + if (a[i] > 127) { + asciiOnly = false; + break; + } + } + } + switch (form) { case NFC : - return NFC.normalize(str, options); + return asciiOnly ? str : NFC.normalize(str, options); case NFD : - return NFD.normalize(str, options); + return asciiOnly ? str : NFD.normalize(str, options); case NFKC : - return NFKC.normalize(str, options); + return asciiOnly ? str : NFKC.normalize(str, options); case NFKD : - return NFKD.normalize(str, options); + return asciiOnly ? str : NFKD.normalize(str, options); } throw new IllegalArgumentException("Unexpected normalization form: " +