commit | 56b88e25c9de656c03aa3ccb41236ee1b153cce7 | [log] [tgz] |
---|---|---|
author | Yoshito Umaoka <y.umaoka@gmail.com> | Tue Dec 02 21:46:43 2014 +0000 |
committer | Yoshito Umaoka <y.umaoka@gmail.com> | Tue Dec 02 21:46:43 2014 +0000 |
tree | e39149c484bc17e1fb6070203ead25795ad00ddf | |
parent | 21da65957e4a27f1e2124ecf4b711af5e91ac78c [diff] |
ICU-11331 Merged #11388(r36781) the CollationFastLatinBuilder bug fix from trunk. X-SVN-Rev: 36799
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 d55f531..e4a023b 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
@@ -2464,3 +2464,15 @@ <1 4 <1 L <1 Ω + +** 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ą