Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Memory Leak bei rekursiven Aufruf...

  Alt 1. Nov 2007, 07:43
Hallo Niels,

du solltest PedigreeList außerhalb der rekursiven Methode instanzieren und die Erzeugung von AnimalList entfernen.

Delphi-Quellcode:
procedure XXX.InbreedCheck(subjectKey: string; PedigreeList: TStrings);
var
  SireKey, DameKey: string;
begin
  // SireKey := GetSireKey(subjectKey);
  // DameKey := GetDameKey(subjectKey);

  if PedigreeList.IndexOf(subjectKey) < 0 then
    PedigreeList.Add(subjectKey);

  if (SireKey <> '') then
    InbreedCheck(SireKey, PedigreeList);

  if (DameKey <> '') then
    InbreedCheck(DameKey, PedigreeList);
end;
Grüße vom marabu
  Mit Zitat antworten Zitat