code: private int getDataBlock(int c, boolean forLSCP) {
          int i2, oldBlock, newBlock;
  
          i2=getIndex2Block(c, forLSCP);
          
          i2+=(c>>UTRIE2_SHIFT_2)&UTRIE2_INDEX_2_MASK;
          oldBlock=index2[i2];
          if(isWritableBlock(oldBlock)) {
              return oldBlock;
          }
  
          /* allocate a new data block */
          newBlock=allocDataBlock(oldBlock);
          setIndex2Entry(i2, newBlock);
          return newBlock;
      }
docs: No error checking for illegal arguments.
  
  @hide draft / provisional / internal are hidden on Android