code: static int hashCodeAsciiSafe(byte[] bytes, int startPos, int length) {
          int hash = HASH_CODE_ASCII_SEED;
          final int remainingBytes = length & 7;
          final int end = startPos + remainingBytes;
          for (int i = startPos - 8 + length; i >= end; i -= 8) {
              hash = PlatformDependent0.hashCodeAsciiCompute(getLongSafe(bytes, i), hash);
          }
          switch(remainingBytes) {
          case 7:
              return ((hash * HASH_CODE_C1 + hashCodeAsciiSanitize(bytes[startPos]))
                            * HASH_CODE_C2 + hashCodeAsciiSanitize(getShortSafe(bytes, startPos + 1)))
                            * HASH_CODE_C1 + hashCodeAsciiSanitize(getIntSafe(bytes, startPos + 3));
          case 6:
              return (hash * HASH_CODE_C1 + hashCodeAsciiSanitize(getShortSafe(bytes, startPos)))
                           * HASH_CODE_C2 + hashCodeAsciiSanitize(getIntSafe(bytes, startPos + 2));
          case 5:
              return (hash * HASH_CODE_C1 + hashCodeAsciiSanitize(bytes[startPos]))
                           * HASH_CODE_C2 + hashCodeAsciiSanitize(getIntSafe(bytes, startPos + 1));
          case 4:
              return hash * HASH_CODE_C1 + hashCodeAsciiSanitize(getIntSafe(bytes, startPos));
          case 3:
              return (hash * HASH_CODE_C1 + hashCodeAsciiSanitize(bytes[startPos]))
                           * HASH_CODE_C2 + hashCodeAsciiSanitize(getShortSafe(bytes, startPos + 1));
          case 2:
              return hash * HASH_CODE_C1 + hashCodeAsciiSanitize(getShortSafe(bytes, startPos));
          case 1:
              return hash * HASH_CODE_C1 + hashCodeAsciiSanitize(bytes[startPos]);
          default:
              return hash;
          }
      }
docs: Package private for testing purposes only!