Delphi 10.4 FreeAndNil Hatası Çözümü

Delphi 10.3 olan freeandnil komutunda 10.4 versiyonunda değişikliğe gidilmesinden dolayı sadece Tobject leri gönderebiliyoruz array ları freeandnil olarak kullanamıyoruz

Delphi 10.3 deki FreeAndNil Procedure 
procedure FreeAndNil(var Obj);
{$IF not Defined(AUTOREFCOUNT)}
var
  Temp: TObject;
begin
  Temp := TObject(Obj);
  Pointer(Obj) := nil;
  Temp.Free;
end;
{$ELSE}
begin
  TObject(Obj) := nil;
end;
{$ENDIF}
Delphi 10.4 deki FreeAndNil Procedure 

procedure FreeAndNil(const [ref] Obj: TObject);
{$IF not Defined(AUTOREFCOUNT)}
var
  Temp: TObject;
begin
  Temp := Obj;
  TObject(Pointer(@Obj)^) := nil;
  Temp.Free;
end;
{$ELSE}
begin
  Obj := nil;
end;
{$ENDIF}

çözüm için şöyle bir yol buldum 

procedure AHMET_FreeAndNil(var Obj);
{$IF not Defined(AUTOREFCOUNT)}
var
  Temp: TObject;
begin
  Temp := TObject(Obj);
  Pointer(Obj) := nil;
  Temp.Free;
end;
{$ELSE}
begin
  TObject(Obj) := nil;
end;
{$ENDIF}

10.4 versiyonunda procedure nin ismini değiştirip projeye dahil ettiğimizde AHMET_FreeAndNil(array1); olarak kullanıp arrayları free edebiliyoruz