From 54143981990be1c8ecfd0834c9acbdb005cd7503 Mon Sep 17 00:00:00 2001 From: Yoshito Umaoka Date: Tue, 18 Aug 2009 16:23:17 +0000 Subject: [PATCH] ICU-7032 Instead of create UnicodeSet instances for validating named parameter syntax, use UCharacter.isUnicodeIdentifierXXX for the same operation. This change drastically improve the initialization performance of MessageFormat without paying any runtime penalties. X-SVN-Rev: 26506 --- .../core/src/com/ibm/icu/text/MessageFormat.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/icu4j/main/classes/core/src/com/ibm/icu/text/MessageFormat.java b/icu4j/main/classes/core/src/com/ibm/icu/text/MessageFormat.java index 2f47151d3f7..5a364d09012 100644 --- a/icu4j/main/classes/core/src/com/ibm/icu/text/MessageFormat.java +++ b/icu4j/main/classes/core/src/com/ibm/icu/text/MessageFormat.java @@ -32,6 +32,7 @@ import java.util.Map; import java.util.Set; import com.ibm.icu.impl.Utility; +import com.ibm.icu.lang.UCharacter; import com.ibm.icu.util.ULocale; /** @@ -2128,10 +2129,10 @@ public class MessageFormat extends UFormat implements BaseFormat 0 && !IDContChars.contains(argument.charAt(i))){ - return false; - } + if (i == 0 && !UCharacter.isUnicodeIdentifierStart(argument.charAt(i)) || + i > 0 && !UCharacter.isUnicodeIdentifierPart(argument.charAt(i))){ + return false; + } } return true; } @@ -2145,9 +2146,6 @@ public class MessageFormat extends UFormat implements BaseFormat