Source und Result sind beides Zeiger. Die Zuweisung im ersten Ausschnitt setzt den Zeiger also so, dass Source und Result auf dasselbe Array zeigen. Man könnte auch das hier schreiben:
Delphi-Quellcode:
procedure TMyClass.DecodeBytes(var Source: TBytes);
begin
if Length(Source) > 0 then
Decode(Source[0], Source[0], Length(Source));
In der Regel wird man
System.Copy verwenden wollen, wenn man Arrayvariablen etwas zuweist.