Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#3

AW: Memoryleak oder doch nicht?

  Alt 29. Mär 2018, 10:41
Also gemäß des Callstacks geht es um den Inhalt von sBuffer. Innerhalb der FBuffin Methode läuft da alles gut, also bleibt nur die Frage, was wird in AppendToLinkedList(nReading, sBuffer); damit gemacht.

Meine Vermutung: dort wird irgendwie der RefCount des strings aus dem Gleichgewicht gebracht.
Bitte das hier..

Delphi-Quellcode:
procedure TSkinConfig.AppendToLinkedList(nReading: Integer; sBuffer: string);
begin

  New(FPBuffer);

  if nReading = 0 then
  Begin
    New(FToPBuffer);
    LineStart := FToPBuffer;
    LineStart^.Nr := 0;
  end;

  FPBuffer^.Nr := nReading;
  FPBuffer^.Str := sBuffer;
  LineStart^.Max := nReading;
  FToPBuffer^.Ptr := FPBuffer;
  FToPBuffer := FPBuffer;

end;
Es werden nur die Zuweisungen aktualisiert.

EDIT:
Delphi-Quellcode:
  PParseFile = ^TParseFile;
  TParseFile = record
    Nr :Integer;
    Str : string;
    Ptr : PParseFile;
    Max : Integer;
  end;
Delphi-Quellcode:
    LineStart : PParseFile;
    FPBuffer : PParseFile;
    FToPBuffer : PParseFile;
gruss

Geändert von EWeiss (29. Mär 2018 um 10:48 Uhr)
  Mit Zitat antworten Zitat