public void updateHashSuffix(int newHashSuffix,
                                 byte newHashSuffixDepth) {
      if (newHashSuffixDepth < 0 || newHashSuffixDepth > Integer.SIZE) {
        throw new IllegalArgumentException("hashSuffixDepth(=" + newHashSuffixDepth + ") must be in [0..32)");
      }
      int mask = ~suffixMask(newHashSuffixDepth);
      if ((newHashSuffix & mask) != 0) {
        throw new IllegalArgumentException(
          "hashSuffix(=" + Integer.toBinaryString(newHashSuffix) + ") " +
          "must have no more than " + newHashSuffixDepth + " trailing bits " +
          "(mask: " + Integer.toBinaryString(mask) + ")"
        );
      }
      segmentBuffer.put(HASH_SUFFIX_DEPTH_OFFSET, newHashSuffixDepth);
      segmentBuffer.putInt(HASH_SUFFIX_OFFSET, newHashSuffix);
    }
public void updateHashSuffix(int newHashSuffix,
                                 byte newHashSuffixDepth)