Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#21

Re: FastIniFiles Memory Leaks

  Alt 22. Nov 2009, 14:10
Zitat von hoika:
Einspruch.
Lese ich mir die Hilfe zu Finalize durch,
macht sie genau so, was sie soll.
Aber ein
Entries.Dispose;
geht hier doch auch ?

Noch mal die Frage an den TE,
hast du Free durch Destroy ersetzt ?
1. Finalize(Array) fässt keine Zeiger an, die in dem Array abgelegt sind. Das steht so im Quellcode. Finalize hier aufzurufen, ist auch überflüssig, weil das Delphi macht. Wenn man nicht mit Referenzzählern rumspielt, muss man nie Finalize selbst aufrufen.

2. 'Entries.Dispose' geht nicht, weil 'Entries' kein Zeiger ist (nun, eigentlich schon, aber nicht offiziell)

3. Free ist nur sicherer als destroy, macht aber nicht mehr. Also würde es ein Speicherleck nicht vermeiden.

Wenn in dem dynamischen Array wirklich Klassen abgelegt sind, dann muss man die einzelnen Elemente auch extra freigeben. Oder man verwendet eine TObjectList.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat