anchor.diff:  // Convert a Int64 into 8 little-endian bytes in buf
   class procedure TCompactProtocolImpl.fixedLongToBytes( const n : Int64; var buf : TBytes);
   begin
  -  ASSERT( Length(buf) >= 8);
  +  SetLength( buf, 8);
     buf[0] := Byte( n         and $FF);
     buf[1] := Byte((n shr 8)  and $FF);
     buf[2] := Byte((n shr 16) and $FF);
  
positive.code: {$ENDIF}
  
  
  initialization
    {$IFDEF Debug}
    TestDoubleToInt64Bits;
    TestZigZag;
    {$ENDIF}
  
  end.
  
negative.code: procedure TCompactProtocolImpl.WriteDouble( const dub: Double);
  var data : TBytes;
  begin
    fixedLongToBytes( DoubleToInt64Bits(dub), data);
    Transport.Write( data);
  end;
  