Einzelnen Beitrag anzeigen

peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
672 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Memory Leak bei TJsonObject

  Alt 23. Dez 2021, 13:14
Hallo Zusammen,

das Problem vorab: beim Zuweisen von LResponse entsteht ein Memory Leak.

Ich habe Schrittweise alles auskommentiert und die Stelle lokalisieren können die dafür verantwortlich ist. Es ist die Zuweisung von LResponse
Delphi-Quellcode:
procedure TdmCleverReach.RefreshToken;
var LResponse: TJsonObject;
    LResponseStream: TBytesStream;
    FormData: TidMultiPartFormDataStream;
begin

  Formdata := TIdMultiPartFormDataStream.Create;
  Formdata.AddFormField('grant_type', 'refresh_token');
  Formdata.AddFormField('refresh_token', INIRefreshToken);
  Formdata.AddFormField('client_id', INIClientID);
  Formdata.AddFormField('client_secret', INIClientSecret);
  FormData.Position := 0;

  LResponseStream := TBytesStream.Create;
  LResponse := TJsonObject.Create;
Die hier erzeugte Instanz wird nie verwendet und auch nie freigegeben.

Weiter unten überrschreibt dein Kode

   LResponse := TJsonObject.ParseJSONValue(LResponseStream.Bytes, 0, LResponseStream.Size) as TJsonObject; das Objekt.
Peter Below
  Mit Zitat antworten Zitat