UStringTrieResult UCharsTrie::branchNext(const UChar *pos, int32_t length, int32_t uchar) { // Branch according to the current unit. if(length==0) { length=*pos++; } ++length; // The length of the branch is the number of units to select from. // The data structure encodes a binary search. while(length>kMaxBranchLinearSubNodeLength) { if(uchar<*pos++) { length>>=1; pos=jumpByDelta(pos); } else {
UStringTrieResult BytesTrie::branchNext(const uint8_t *pos, int32_t length, int32_t inByte) { // Branch according to the current byte. if(length==0) { length=*pos++; } ++length; // The length of the branch is the number of bytes to select from. // The data structure encodes a binary search. while(length>kMaxBranchLinearSubNodeLength) { if(inByte<*pos++) { length>>=1; pos=jumpByDelta(pos); } else {