static int readUnsignedVLQInt()

in src/main/java/com/spotify/sparkey/Util.java [146:181]


  static int readUnsignedVLQInt(BlockRandomInput input) throws IOException {
    int b = input.readUnsignedByte();
    int b2 = b & 0x7f;
    if (b2 == b) {
      return b;
    }
    int value = b2 & 0x7f;

    b = input.readUnsignedByte();
    b2 = b & 0x7f;
    if (b2 == b) {
      return value | b << 7;
    }
    value |= b2 << 7;

    b = input.readUnsignedByte();
    b2 = b & 0x7f;
    if (b2 == b) {
      return value | b << 14;
    }
    value |= b2 << 14;

    b = input.readUnsignedByte();
    b2 = b & 0x7f;
    if (b2 == b) {
      return value | b << 21;
    }
    value |= b2 << 21;

    b = input.readUnsignedByte();
    b2 = b & 0x7f;
    if (b2 == b) {
      return value | b << 28;
    }
    throw new RuntimeException("Too long VLQ value");
  }