Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.170 Beiträge
 
Delphi 12 Athens
 
#3

AW: Memory leak durch funktion readln

  Alt 12. Mär 2015, 10:27
Wieso ist "Zeile" nicht lokal deklatiert?

Und ja, Text-Reads gehen immer über einen Puffer.
* dort wird der Inhalt stückchenweise reinkopiert
* da drin wird dann nach dem nächsten Zeilenumbruch gesucht (bzw nach dem Ende der für die Leseoperation ... z.B. das Ende der Zahl für Read(Datei, MyInteger) )
* und dann wird dort das zu Lesende rauskopiert, nachdem man weiß, bis wohin gelesen werden muß


PS: Auch das Writeln geht erstmal in diesen Cache.
Delphi-Quellcode:
PTextBuf = ^TTextBuf;
TTextBuf = array[0..127] of AnsiChar;
TTextRec = packed record
  Handle: THandle;
  Mode: Word;
  ...
  Name: array[0..259] of WideChar;
  Buffer: TTextBuf; // der Standardpuffer direkt in der "TEXT"-Variable
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (12. Mär 2015 um 10:31 Uhr)
  Mit Zitat antworten Zitat