public BinaryDocValuesAnonymousInnerClassHelper2(MemoryDocValuesProducer outerInstance,
     PagedBytes.Reader bytesReader, MonotonicBlockPackedReader addresses)
 {
     this.outerInstance = outerInstance;
     this.bytesReader = bytesReader;
     this.addresses = addresses;
 }
 private BinaryDocValues LoadBinary(FieldInfo field)
 {
     BinaryEntry entry = binaries[field.Number];
     data.Seek(entry.offset);
     var bytes = new PagedBytes(16);
     bytes.Copy(data, entry.numBytes);
     var bytesReader = bytes.Freeze(true);
     if (entry.minLength == entry.maxLength)
     {
         int fixedLength = entry.minLength;
         ramBytesUsed.AddAndGet(bytes.RamBytesUsed());
         return new BinaryDocValuesAnonymousInnerClassHelper(this, bytesReader, fixedLength);
     }
     else
     {
         data.Seek(data.FilePointer + entry.missingBytes);
         var addresses = new MonotonicBlockPackedReader(data, entry.packedIntsVersion,
             entry.blockSize, maxDoc, false);
         ramBytesUsed.AddAndGet(bytes.RamBytesUsed() + addresses.RamBytesUsed());
         return new BinaryDocValuesAnonymousInnerClassHelper2(this, bytesReader, addresses);
     }
 }