AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

EAccessViolation bei Free()

Ein Thema von hitzi · begonnen am 3. Dez 2004 · letzter Beitrag vom 3. Dez 2004
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#11

Re: EAccessViolation bei Free()

  Alt 3. Dez 2004, 12:48
Zitat von hitzi:
Wird's aber nicht

Wieso wird das eigentlich so von Borland gelöst.
Wäre ein
Delphi-Quellcode:
Obj.Free;
Obj := nil;
nicht kürzer und schneller?
Ich kann mir nur vorstellen, dass es was mit sicherheit zu tuen hat.

Wenn bei deiner Variante im Destructor ne Exception auftritt (sollte natürlich nicht passieren und weiss auch garnicht was dann passiert) wird die Variable nicht auf nil gesetzt.
Bei der Borland Variante wird die Variable vorher wirklich auf nil gesetzt und dann ist es egal, ob ne Exception auftritt.

Warum bei dir nicht Destroy aufgerufen wird, hat teebee ja schon gesagt. Dadurch das Quasi bei FreeAndNil TObject.Free aufgerufen wird, wird auch nur TObject.Destroy aufgerufen. (Hängt mit der VMT zusammen). Machst du aus dem reintroduce ein override, dann sollte es korrekt funktionieren.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Benutzerbild von hitzi
hitzi

Registriert seit: 2. Jan 2003
Ort: Eibau
768 Beiträge
 
Delphi 2010 Professional
 
#12

Re: EAccessViolation bei Free()

  Alt 3. Dez 2004, 13:35
Danke an alle.

Wenn ich's so mache wie's Jim im vorherigen Beitrag geschrieben hat, funktioniert auch FreeAndNil.

Gruss
Thomas
Besucht doch mal http://www.hitziger.net
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz