anchor.diff:  type
     PWavPackStream = ^TWavPackStream;
     TWavPackStream = record
  -  	HasPushedByte: Boolean;
  -  	PushedByte: Byte;
  -  	Stream: TStream;
  +    HasPushedByte: Boolean;
  +    PushedByte: Byte;
  +    Stream: TStream;
     end;
   { -------------------------------------------------------------------------- }
   function TWavPackStream_read_bytes(id, data: Pointer; bcount: int32_t): int32_t; cdecl;
  
positive.code: //
  // Based on wvunpack.c::unpack_file()
  procedure DecompressWavPack(aSrc, aDes: TStream);
  const
    OutputBufSize = 256 * 1024;
  var
  
negative.code: 
        // Write output when it's full or when we're done
        if (SamplesUnpacked = 0) or
           ((OutputBufSize - (PtrInt(OutputPtr) - PtrInt(OutputBuf))) < BytesPerSample) then begin
          aDes.WriteBuffer(OutputBuf^, PtrInt(OutputPtr) - PtrInt(OutputBuf));
          OutputPtr := OutputBuf;
        end;
      until (SamplesUnpacked = 0);
  