Einzelnen Beitrag anzeigen

Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#58

Re: Record zurücksetzen (löschen)

  Alt 15. Sep 2008, 07:10
So... Und ich hab da auch mal was nettes:

Folgendes Konstrukt:
Delphi-Quellcode:
type
  TThreadVars = record
    sServerHost : String;
    sRemoteIP : String;
    sPHPSession : String;
    sVar1 : String;
    sVar2 : String;
    sVar3 : String;
    sVar4 : String;
    sVar5 : String;
    dVar1 : TDateTime;
    iVar1 : Int64;
    (* --- Request Infos --- *)
    pThread : ^TIdContext;
    pRequest : ^TIdHTTPRequestInfo;
    pResponse : ^TIdHTTPResponseInfo;
  end;

threadvar
  tv : TThreadVars;
Am Anfang des Threads werden alle Felder gefüllt bzw. irgendwann im laufenden Thread.

Am Ende des Threads wird folgendes aufgerufen:

Delphi-Quellcode:
    Finalize(tv);
    FillChar(tv, SizeOf(tv), 0);
Und was passiert?

Richtig, ich hab ein Memory Leak.
Allerdings nur in den ersten 3 String Variablen.
Wenn ich diese per Hand auf zurücksetze ( var := ''; ) dann ist das Memory Leak weg...
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat