protected final int getCodePointOffset(int ch)
    {
        // if ((ch >> 16) == 0) slower
        if (ch < 0) {
            return -1;
        } else if (ch < UTF16.LEAD_SURROGATE_MIN_VALUE) {
            // fastpath for the part of the BMP below surrogates (D800) where getRawOffset() works
            return getRawOffset(0, (char)ch);
        } else if (ch < UTF16.SUPPLEMENTARY_MIN_VALUE) {
            // BMP codepoint
            return getBMPOffset((char)ch);
        } else if (ch <= UCharacter.MAX_VALUE) {
            // look at the construction of supplementary characters
            // trail forms the ends of it.
            return getSurrogateOffset(UTF16.getLeadSurrogate(ch),
                                      (char)(ch & SURROGATE_MASK_));
        } else {
            // return -1 if there is an error, in this case we return
            return -1;
        }
    }
protected final int getCodePointOffset ( int ch ) { if ( ch < 0 ) { return - 1 ; } else if ( ch < UTF16 . LEAD_SURROGATE_MIN_VALUE ) { return getRawOffset ( 0 , ( char ) ch ) ; } else if ( ch < UTF16 . SUPPLEMENTARY_MIN_VALUE ) { return getBMPOffset ( ( char ) ch ) ; } else if ( ch <= UCharacter . MAX_VALUE ) { return getSurrogateOffset ( UTF16 . getLeadSurrogate ( ch ) , ( char ) ( ch & SURROGATE_MASK_ ) ) ; } else { return - 1 ; } }
Internal trie getter from a code point.
Could be faster(?) but longer with
if((c32)<=0xd7ff) { (result)=_TRIE_GET_RAW(trie, data, 0, c32); }
Gets the offset to data which the codepoint points to
@param ch codepoint
@return offset to data