Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
30. Sep 2022
PS: Nein, FreeAndNil hat keinen Var-Parameter mehr,
sondern ähhh ja FreeAndNil(const Obj: TObject);. (den Grund könnte ihr mehrmals in der SuFu finden)
Ja, auch wenn es CONST ist, wird intern über einen bösen Cast (um die Schreibschutzprüfung des Compilers auszuhebeln) schreibend darauf zugegriffen :stupid:,
nachdem gelesen wurde, weswegen trotz INLINE dennoch grundsätzlich die "nicht...
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
30. Sep 2022
Eigentlich nicht. VAR ist Read/Write.
Nur beim OUT gibt es "im Grunde" keinen Lesevorgang, womit auch ausschließlich dort dann diese Prüfung ausfallen sollte.
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
30. Sep 2022
FreeAndNil sollte aber auch diese Meldung produzieren, wenn vorher nichts zugewiesen wurde. :gruebel: :?:
(außer wenn AUTOREFCOUNT, also in den Mobilen, weil naja ... Objekt ist dort Managed, also immer initialisiert, und diese Inline-Przedur macht auch bloß noch Obj := nil;, was kein Lesezugriff ist ... der Prozedur-Header "CONST" ja, aber INLINE nicht mehr)
Ja, ich kenne auch Viele,...
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
29. Sep 2022
Nein, abgesehn von Objekten und New/GetMemory/... initialisiert Delphi keinen Speicher und dort auch nur, weil Windows (VirtualAlloc) dort auch immer genullt gibt.
Aus "performancegründen" wird aber der Stack nicht mit 0 überschrieben, bei jedem Funktionsaufruf (außer eben des Gemanagte, weil es dort Ohne nicht funktioniert) .... daaaaaaaaaaaamals waren PCs halt noch schön langsam
Nein,...
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
29. Sep 2022
Nein, das geht nur bei globalen Variablen.
OK, und neuerdings auch bei Inline-Variablen, also einen "Initalisations-Wert" zu definieren,
und Objekte-Felder oder globaler Variablen sind sonst auch immer 0.
lokale Variablen sind nicht initialisiert, also haben einen zufälligen Wert, aber wenn sie da auf dem Stack liegen, wo vorher noch nichts war, dann ist es "jetzt" auch 0, aber ob...