Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
Delphi 12 Athens
|
AW: Wie herausfinden warum Interface nil ist?
23. Apr 2023, 00:28
Eine Interface-Variable ist immer Nil, wenn du oder wer Anderes da Nil zugewiesen hat, bzw. wenn noch nie etwas zugewiesen wurde.
Ausnahme sind WeakReferenzen, die von alleine NIL werden, wenn wo anders die letzte Variable Nil oder gelöscht wurde.
Wenn Data.RefCount im CreateReceipt-BEGIN 0 war, dann wäre es in dessen END freigegeben worden.
Passiert eventuell, wenn man ein Interface falsch erzeugt, bzw. das erzeugte "Objekt" direkt als Parameter übergab.
Aber wenn es nach dem FData:= mindestens 2 war, dann würde es eigentlich stimmen.
Und dürfte hier auch nie passieren, also das RefCount 0 zu Beginn, da der Parameter kein CONST ist. (ich weiß nicht, warum Viele unbedingt drauf bestehen und mich zwingen wollen dort CONST machen zu müssen ... Referenzzählung ist nicht soooooo langsam und verhindert einige "Bugs")
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
Geändert von himitsu (23. Apr 2023 um 00:36 Uhr)
|