1
vote
Yet Another Word about FreeAndNil
The Programming Works
– The FreeAndNil discussion never stops. I decided to add my twopence. How about this: {.$DEFINE FREEANDNIL} {$IFDEF FREEANDNIL} procedure FreeObj(var Obj); inline; begin FreeAndNil(Obj); end; {$ELSE} procedure FreeObj(Obj: TObject); inline; begin Obj.Free; end; {$ENDIF} With FreeObj procedure you can have both “defensive coding” for debugging and clean production code. It is also clear that FreeAndNil is used just for debugging, so future maintainers will not be mislead and distracted by FreeAndNil usage. Since FreeObj is inlined, it does not also have an influence on the executable code ...
Statistics
|
Visits by Source |
User Actions |



