Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#10

Re: Abfragen ob eine Variable oder die Referenz noch existie

  Alt 25. Sep 2007, 22:40
Zitat von Cyberaxx:
Das Speicherleck habe ich übersehen, das ist wirklich schlimm, das wird direkt behoben, danke
Da hilft auch try/finally, weil trotz Exit würde der finally Block durchlaufen und somit wäre kein Leck entstanden.

Zitat von Cyberaxx:
Die Procedure ist schon komplett umgeändert. Habe vor dem Free einfach die SID auf 0 gesetzt und darauf dann geprüft, ob das nun die sauberste Lösung ist glaube ich nicht aber immerhin konnte ich damit erstmal weiter arbeiten ohne eine Exception.
Oh, wow, dann empfehle ich dringends nochmal einen Lottoschein abzugeben. Du spielst hier auch Lotto, schliesslich gibst du die Instanz in der Liste einfach frei und später greifst du auf die nicht mehr existierende Instanz zu und vergleichst den SID Wert der Instanz. Da die TCollection immernoch die Adresse der alten Instanz hat aber an der Stelle keine Instanz mehr liegt, ist es wirklich ein sehr guter Zufall, dass an der ehemaligen Stelle von SID nun immernoch eine 0 steht. Damit: Lottoschein noch schnell abgeben - morgen ist Ziehung!

Wenn du die SID später vergleichen willst, dann muss die Instanz am Leben bleiben, welche die SID hält.

Zitat von Cyberaxx:
Das mit dem FreeandNil werde ich mal ausprobieren, sofern es auf Anhieb nicht zu viele Änderungen sind.
Keine Chance, da Items[] eine Property von TCollection ist und da dahinter Getter und Setter stehen können und somit keine direkte Variable vorliegt, kann FreeAndNil() nicht angewendet werden. Du musst explizit nil zuweisen.

Zitat von Cyberaxx:
Was den gesamten Source angeht, so würde ich den wenn er mal fertig wird so oder so von dritten prüfen lassen, habe sicherlich noch überall kleine Mängel und Lecks drin, ganz zu schweigen von Optimierungen.
Nicht meine Baustelle...
  Mit Zitat antworten Zitat