Andreas I must completely agree with you 'Free' and FreeandNil() can always be called on a nil pointer, This is a language function, Therefore by doing the assignment check for 'readability' you are essentially advertising your ignorance of the language IMHO
Neven ----- Original Message ----- From: "Andreas Toth" <[EMAIL PROTECTED]> To: "Multiple recipients of list delphi" <[EMAIL PROTECTED]> Sent: Monday, March 03, 2003 10:37 AM Subject: RE: [DUG]: Freeing Stringlists. > That's perfectly fine with me. I just think it's a waste of time, that's > all. After all, after you've found that it's not nil, you'll have to call > FreeAndNil() that will do this test again for you. And, in most instances, > you'll probably find that Assigned() evaluates to true anyway (OK, so I > realise this depends on the code, but in my experience this is most of the > case), and hence doubling up on your efforts. IMHO, readability is only > impaired if you don't know what Free() and FreeAndNil() does. > > > -Andreas > > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > Behalf Of Guy Brown > Sent: Monday, 3 March 2003 10:19 > To: Multiple recipients of list delphi > Subject: RE: [DUG]: Freeing Stringlists. > > > I stand corrected. However I still think that it is better practise to > explicitly test Assigned() first for the reasons that David mentioned. > > Guy > > -----Original Message----- > From: Andreas Toth [mailto:[EMAIL PROTECTED] > > And what do you think Free() does -- checks to see if it is nil or not, just > like you are doing with Assigned(). > > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > Behalf Of Guy Brown > > Nope, FreeAndNil() frees the object and then nil's the reference you passed > to it so that any other clean up code that uses Assigned() to test the same > reference won't free the object a second time. > > Guy > > ------------ > >From sysutils: > > procedure FreeAndNil(var Obj); > var > P: TObject; > begin > P := TObject(Obj); > TObject(Obj) := nil; // clear the reference before destroying the object > P.Free; > end; > > -------------- > > -----Original Message----- > From: Andreas Toth [mailto:[EMAIL PROTECTED] > > There's no need to use Assigned() since FreeAndNil() performs a similar > test... > > > -Andreas > > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > Behalf Of Peter Speden > Try > > If Assigned (includelist) then > FreeAndNil (includelist); > > Etc > > Or > > If includelist <> nil then > FreeAndNil (includelist); > > They are not freed elsewhere are they. > > Peter Speden > -------------------------------------------------------------------------- - > New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED] > Website: http://www.delphi.org.nz > To UnSub, send email to: [EMAIL PROTECTED] > with body of "unsubscribe delphi" > Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/ > > -------------------------------------------------------------------------- - > New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED] > Website: http://www.delphi.org.nz > To UnSub, send email to: [EMAIL PROTECTED] > with body of "unsubscribe delphi" > Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/ > -------------------------------------------------------------------------- - > New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED] > Website: http://www.delphi.org.nz > To UnSub, send email to: [EMAIL PROTECTED] > with body of "unsubscribe delphi" > Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/ > > -------------------------------------------------------------------------- - > New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED] > Website: http://www.delphi.org.nz > To UnSub, send email to: [EMAIL PROTECTED] > with body of "unsubscribe delphi" > Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/ > > --------------------------------------------------------------------------- New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED] Website: http://www.delphi.org.nz To UnSub, send email to: [EMAIL PROTECTED] with body of "unsubscribe delphi" Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/
