예제 #1
0
 protected final long storeCharChunk(final char[] ch, final int start, final int length) {
   final int hcode = HashUtils.hashCode(ch, start, length);
   final long haddr = _hashv2addr.get(hcode);
   if (haddr != -1L) {
     final char[] strInAddr = getChars(haddr);
     assert (strInAddr != null);
     if (ArrayUtils.equals(strInAddr, ch, start, length)) {
       return haddr;
     } else {
       _hashv2addr.remove(hcode);
     }
   }
   final long raddr = allocateCharChunk(ch, start, length);
   _hashv2addr.put(hcode, raddr);
   return raddr;
 }