Weiterer Bug gefunden:
Code:
Quick.Process.GetProcessList
erzeugt ein Memory-Leak. Es scheint keine Möglichkeit zu geben, das Gedächtnis-Loch zu vermeiden:
Code:
procedure TForm1.tsProcessListsShow(Sender: TObject);
var
sl: TStringList;
begin
sl := TStringList.Create;
try
sl.Sorted := True;
sl.Duplicates := dupIgnore;
sl.AddStrings(Quick.Process.GetProcessList); // bug: Creates memory-leak
//CodeSite.Send('TForm1.tsProcessListsShow: sl', sl);
lstProcesses.Items.Assign(sl);
finally
sl.Free;
end;
end;
Dies scheint ein konzeptioneller Fehler zu sein:
Quick.Process.GetProcessList gibt ein Ergebnis vom Typ
TStringList zurück. Aber wie soll man den Speicher dieser StringList wieder freigeben? Besser wäre es, der Funktion Quick.Process.GetProcessList eine existierende StringList als
var-Parameter zu übergeben, die man dann nachher selbst freigeben kann, z.B.:
Code:
Quick.Process.GetProcessList(sl);
Geändert von PeterPanino, damit der Platz auf dem Bildschirm nicht so leer aussieht.