AGB  ·  Datenschutz  ·  Impressum  







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

Wer macht den Free?

Ein Thema von Mavarik · begonnen am 11. Feb 2017 · letzter Beitrag vom 17. Feb 2017
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.562 Beiträge
 
Delphi 12 Athens
 
#1

AW: Wer macht den Free?

  Alt 11. Feb 2017, 17:35
Zitat:
was dem const ja widersprechen würde
Jain.

FreeAndNil würde dem Const wiedersprechen, aber Free per se nicht.
Es wird ja nicht die Variable/Parameter verändert, sondern nur das, worauf sie zeigt.


Also der "Grundsatz" wurde ja schon genannt.
Am Besten gibt immer der etwas frei, der es auch erstellt hat.

Im Falle von solchen Results könnte die Klasse, wo die Get-Methode drin ist, eine GibFrei-Methode anbieten.
Alternativ kommt es auf die Dokumentation an.
Entweder die Get-Methode speichert intern den Zeiger und gibt es später frei, wenn die übergeordnete Klasse auch freigegeben wird, bzw. beim nächsten Aufruf der Get-Methode.
Oder man definiert es so, dass der "Caller" in soeinem Fall das freigeben muß. (ich würde das auch präferieren)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.165 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Wer macht den Free?

  Alt 11. Feb 2017, 17:51
Gerade bei TStrings hab ich in unserem eigenen Sourcecode oft gesehen, dass hier ein TArray<string> genug gewesen wäre und sich somit die Frage gar nicht mehr stellt.
ja so mache ich es auch...


Eine der Stellen, an der man sich die C++ "Const-ness" wünscht, mit der man nicht nur die Referenz/Pointer als const markieren kann, sondern tatsächlich auch das dahinterliegende Objekt.
Ja - der Kollege hat im ganzen Source FreeAndNIL genommen und wäre er dabei geblieben - alles gut - aber da viele der Proceduren mit CONST sind hat er in diesen Fällen

AListe.Free genommen... (Manchmal)

Ich muss mir also jeder Procedure einzeln ansehen und das in alle tiefen, ob jemand aufräumt... ätzend...

Da lobe ich mir doch die Interfaces...

Mavarik
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:37 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