code: private final boolean checkBlock(int currentValue)
      {
          int currentBlock = m_nextBlock_;
          m_nextBlock_ = m_trie_.m_index_[m_nextIndex_] <<
                                                    Trie.INDEX_STAGE_2_SHIFT_;
          if (m_nextBlock_ == currentBlock &&
              (m_nextCodepoint_ - m_currentCodepoint_) >= DATA_BLOCK_LENGTH_) {
              // the block is the same as the previous one, filled with
              // currentValue
              m_nextCodepoint_ += DATA_BLOCK_LENGTH_;
          }
          else if (m_nextBlock_ == m_trie_.m_dataOffset_) {
              // this is the all-initial-value block
              if (currentValue != m_initialValue_) {
                  m_nextValue_      = m_initialValue_;
                  m_nextBlockIndex_ = 0;
                  return false;
              }
              m_nextCodepoint_ += DATA_BLOCK_LENGTH_;
          }
          else {
              if (!checkBlockDetail(currentValue)) {
                  return false;
              }
          }
          return true;
      }
docs: Internal block value calculations
  Performs calculations on a data block to find codepoints in m_nextBlock_
  that has the same value.
  Will call checkBlockDetail() if highlevel check fails.
  Note m_*_ variables at this point is the next codepoint whose value
  has not been calculated.
  @param currentBlock the initial block containing all currentValue
  @param currentValue the value which other codepoints are tested against
  @return true if the whole block has the same value as currentValue or if
  the whole block has been calculated, false otherwise.