Einzelnen Beitrag anzeigen

Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
804 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Speicherleaks TMemoryStream in einem Objekt

  Alt 22. Dez 2023, 17:13
Ok, da hast Du direkt die Lücken getroffen...

Zitat:
Und wieso gibt es ein WRITE bei den Streams? Die werden intern erstellt, also was wird wohl passieren, wenn dort wirklich mal jemand etwas zuweist?
Stimmt, macht keinen Sinn, aber ich gebe eigentlich bei properties immer read und write an. Aber so wäre es richtig:
Delphi-Quellcode:
property StreamSetMain: TMemoryStream read fStreamSetMain;
property StreamSetBSC: TMemoryStream read fStreamSetBSC;
Ich nehme an, die korrekte Definition des Contructors sähe so aus:
Delphi-Quellcode:
constructor TMxSQL.Create(GetSets: boolean);
begin
   inherited Create;
   if GetSets then begin
      fStreamSetMain:= TMemoryStream.Create;
      GetSettings('hlp_properties');
      fStreamSetBSC:= TMemoryStream.Create;
      GetSettings('hlp_properties_bsc');
   end;
end;
Und dann müsste ich den Destructor auch anpassen, oder?
Delphi-Quellcode:
destructor TMxSQL.Free;
begin
   fStreamSetMain.Free;
   fStreamSetBSC.Free;
   Inherited Free;
end;
Aber wenn ich es so mache, crasht die App sofort - das scheint nicht der richtige Weg zu sein...

Hast Du einen Tip für mich?
Patrick
  Mit Zitat antworten Zitat