![]() |
AW: Den Leak bei rekursiven Closures bekämpfen
Zitat:
Delphi-Quellcode:
myPrinter := NIL;
|
AW: Den Leak bei rekursiven Closures bekämpfen
Das mit dem IPrinter sollte nur verdeutlichen dass wir es u.U. nicht nur mit ein paar Byte für die Closure sondern evtl. mit richtig dicken Brocken zu tun haben ;-)
Ich bedanke mich noch einmal ganz herzlich bei allen :thumb: Ich hatte gestern wohl einen schlechten Tag und irgendwie übersehen dass das explizite "Nil-Setzen" der Variable Abhilfe schafft. Da ich keinen Assembler verstehe musste ich es zwar zwei, drei mal lesen, aber ich glaube ich habe es jetzt verstanden. Dieses implizit erstellte "Etwas" scheint demnach die Closure nur als Zeiger zu referenzieren oder weshalb ruft er kein IntfClear darauf auf wenn er selber platt gemacht wird? Vielleicht sollte man das ändern? |
AW: Den Leak bei rekursiven Closures bekämpfen
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Das ist übrigens auch der Grund, warum man die nicht mehr mit dem Debugger anschauen kann - dem wurde das nämlich scheinbar niemals beigebracht. Innerhalb der anonymen Methode allerdings kann man sie sehen und dort sieht man auch, dass es sich um ein Objekt handelt: http://www.delphipraxis.net/attachme...1&d=1467891203 Dementsprechend werden diese Felder auch niemals beim end einer Methode angefasst/finalized. Denn die anonyme Methode könnte ja noch weiter leben. Um das festzustellen, müsste der Compiler eine eher komplexe Analyse des Codes durchführen. Eventuell wäre das aber etwas, was man Roman für FixInsight mal vorschlagen könnte. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz