Sodele ich habe mal dem
TRESTResponseDataSetAdapter das Leaking (
RSP-9623) ausgetrieben.
Wer also damit auf einer NON-ARC-Plattform sinnvoll arbeiten möchte, der kopiert sich die beiden Units und baut sich den BugFix ein:
Delphi-Quellcode:
unit REST.Client;
function TCustomRESTResponse.HasJSONResponse: Boolean;
{$IFDEF USE_BUGFIX}
var
LJSONValue : TJSONValue;
begin
if not Assigned( FJSONValue )
then
begin
LJSONValue := TJSONObject.ParseJSONValue(Content);
try
Result := Assigned( LJSONValue );
finally
LJSONValue.Free;
end;
end
else
Result := True;
end;
{$ELSE}
begin
Result := (FJSONValue <>
nil)
or (TJSONObject.ParseJSONValue(Content) <>
nil);
end;
{$ENDIF}
und zusätzlich noch
Delphi-Quellcode:
unit REST.Response.Adapter;
destructor TCustomRESTResponseDataSetAdapter.Destroy;
begin
{$IFDEF USE_BUGFIX}
FreeAndNil(FJSONValue);
{$ENDIF}
inherited;
FAdapter.Free;
if FResponse <>
nil then
if FResponse.NotifyList <>
nil then
FResponse.NotifyList.RemoveNotify(FNotify);
FNotify.Free;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)