commit | b758ee52cccf0c4f3e585d6b877fad754011d554 | [log] [tgz] |
---|---|---|
author | Yoshito Umaoka <y.umaoka@gmail.com> | Tue Dec 02 21:45:35 2014 +0000 |
committer | Yoshito Umaoka <y.umaoka@gmail.com> | Tue Dec 02 21:45:35 2014 +0000 |
tree | 088deec9bdc50a9ca3b572f77b7adf3fd154433d | |
parent | 5c5dd0ceac3bcf75dd758ae7567e8bb7e190c0f0 [diff] |
ICU-10820 Merged #11388(r36781) the CollationFastLatinBuilder bug fix from trunk. X-SVN-Rev: 36798
diff --git a/main/classes/collate/src/com/ibm/icu/impl/coll/CollationFastLatinBuilder.java b/main/classes/collate/src/com/ibm/icu/impl/coll/CollationFastLatinBuilder.java index 7891da0..8b31ccc 100644 --- a/main/classes/collate/src/com/ibm/icu/impl/coll/CollationFastLatinBuilder.java +++ b/main/classes/collate/src/com/ibm/icu/impl/coll/CollationFastLatinBuilder.java
@@ -590,7 +590,7 @@ int miniCE = encodeTwoCEs(cce0, cce1); if(miniCE == CollationFastLatin.BAIL_OUT) { result.append((char)(x | (1 << CollationFastLatin.CONTR_LENGTH_SHIFT))); - } else if(miniCE <= 0xffff) { + } else if((miniCE >>> 16) == 0) { // if ((unsigned)miniCE <= 0xffff) result.append((char)(x | (2 << CollationFastLatin.CONTR_LENGTH_SHIFT))); result.append((char)miniCE); } else {
diff --git a/main/tests/collate/src/com/ibm/icu/dev/data/collationtest.txt b/main/tests/collate/src/com/ibm/icu/dev/data/collationtest.txt index d91ba24..4e3161b 100644 --- a/main/tests/collate/src/com/ibm/icu/dev/data/collationtest.txt +++ b/main/tests/collate/src/com/ibm/icu/dev/data/collationtest.txt
@@ -2366,3 +2366,15 @@ <2 \u0027 <2 c <1 r + +** test: regression test for CollationFastLatinBuilder, ICU ticket 11388 +@ rules +&x<<aa<<<Aa<<<AA +% strength=secondary +* compare +<1 AA +<2 Aẩ +<2 aą +* compare +<1 AA +<2 aą \ No newline at end of file