Delphi-PRAXiS
Seite 8 von 8   « Erste     678   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Wenn man sich was wünschen dürfte... (https://www.delphipraxis.net/186630-wenn-man-sich-wuenschen-duerfte.html)

bernau 24. Sep 2015 01:09

AW: Wenn man sich was wünschen dürfte...
 
Zitat:

Zitat von schöni (Beitrag 1316702)
Ich wüchsche mir vielmehr einen Compiler, der die Initialisierung und Freigabe der verwendeten Objekte automatisiert. Ich habe sehr oft EAccessViolations. Weil wohl irgendein Objekt nicht korrekt erzeigt worden ist. Dann geht die frustrierende Fehlersuche los.

Ich weis nicht wo die Probleme sind. Es ist doch echt kein Problem ein Objekt zu erzeugen und vor allem freizugeben.

Meine Devise ist: Nur anhand dem Müll, den ich aufräume (free), sehe ich welchen Müll ich überhaupt produziere (create). An ARC, GarbageCollector und Konsorten kann ich mich nicht wirklich gewöhnen.

Ich hätte aber eine andere Idee. Schön wäre es, wenn der Compiler es hinkriegen würde, den Pointer eines freigegebenen Objektes so lange nicht neu zu belegen, bis es keine Referenz mehr auf diesen Pointer gibt. Ein free sollte den Pointer mit der Adresse eines TDestroyedObject belegen, der dann eine "schöne Exception" erzeugt und keine nichtssagende Schmutzverletzung. Ein Zugriff auf NIL sollte auch mit einer besseren Fehlermeldung belegt werden.

mkinzler 24. Sep 2015 04:56

AW: Wenn man sich was wünschen dürfte...
 
Zitat:

Zitat von Stevie (Beitrag 1316796)
"Englisch wird die Arbeitssprache" (Günther Oettinger) :lol:

Ist ja auch kein Problem, wenn man wie er englisch perfekt kann. :mrgreen:

Dejan Vu 24. Sep 2015 06:13

AW: Wenn man sich was wünschen dürfte...
 
Zitat:

Zitat von bernau (Beitrag 1316799)
Ich hätte aber eine andere Idee. Schön wäre es, wenn der Compiler es hinkriegen würde, den Pointer eines freigegebenen Objektes so lange nicht neu zu belegen, bis es keine Referenz mehr auf diesen Pointer gibt. Ein free sollte den Pointer mit der Adresse eines TDestroyedObject belegen, der dann eine "schöne Exception" erzeugt und keine nichtssagende Schmutzverletzung. Ein Zugriff auf NIL sollte auch mit einer besseren Fehlermeldung belegt werden.

Willst Du Unzulänglichkeiten im Design wirklich kaschieren? Die Fehlermeldung auf Nil ist schon genau genug. Du meinst sicherlich die Access Violations bei 0x00000012.

PS: Wenn der Compiler schon Referenzzählung integriert, dann kann er die Objekte auch gleich selbst freigeben. Genau das passiert bei Interfaces und unter Android. Und bei anderen Sprachen.

Allerdings entbindet dich die automatische Freigabe nicht von sorgfältigem Design. Es reicht schon, wenn zwei ansonsten nicht mehr verwendete Objekte noch Verweise auf das jeweils andere haben.

Stevie 24. Sep 2015 06:56

AW: Wenn man sich was wünschen dürfte...
 
Zitat:

Zitat von bernau (Beitrag 1316799)
Ich hätte aber eine andere Idee. Schön wäre es, wenn der Compiler es hinkriegen würde, den Pointer eines freigegebenen Objektes so lange nicht neu zu belegen, bis es keine Referenz mehr auf diesen Pointer gibt. Ein free sollte den Pointer mit der Adresse eines TDestroyedObject belegen, der dann eine "schöne Exception" erzeugt und keine nichtssagende Schmutzverletzung. Ein Zugriff auf NIL sollte auch mit einer besseren Fehlermeldung belegt werden.

Das gibts schon und nennt sich FastMM FullDebug oder LeakCheck als memory Manager ersatz während der Entwicklung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:54 Uhr.
Seite 8 von 8   « Erste     678   

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