Cool my new thing learn't for today!  I didn't acutally know you could
safely call free on a nil'ed class/pointer.  I've been assuming since D1
that you couldn't.  That has just changed my outlook a bit.

Thanks.

Nahum.

> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] Behalf Of Paul Needham
> Sent: Thursday, 4 March 2004 16:17 p.m.
> To: 'NZ Borland Developers Group - Delphi List'
> Subject: RE: [DUG] try..finally : Which way is best?
>
>
> Not so. Check the help on free.
> It is perfectly safe as long as issues and terrorists were set to nil
> first. I think the compiler shows warnings if you don't
> anyway. I could
> have also explicitly checked to see if they were assigned in
> the finally
> but don't generally bother as this is what free does anyway. I am
> willing to concede that calling destroy would be bad though 8).
>
> Paul
>
>
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED]
> On Behalf Of Nahum.Wild
> Sent: Thursday, 4 March 2004 4:08 p.m.
> To: 'NZ Borland Developers Group - Delphi List'
> Subject: RE: [DUG] try..finally : Which way is best?
>
> If issues fails then the finally will try to free terrorists,
> which will
> probably cause another exception. :o)
>
> Nahum.
>
> > -----Original Message-----
> > From: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED] Behalf Of Paul Needham
> > Sent: Thursday, 4 March 2004 15:59 p.m.
> > To: 'NZ Borland Developers Group - Delphi List'
> > Subject: RE: [DUG] try..finally : Which way is best?
> >
> >
> > How about.....
> >
> > issues := nil;
> > terrorists := nil;
> > changes := TStringList.create;
> > try
> >   issues := TIssuesList.create;
> >   terrorists := THardToFind.create;
> >
> >   ...
> >
> > finally
> >   terrorists.free;
> >   issues.free;
> >   changes.free;
> > end;
> >
> > Paul
> > DBSolutions
> >
> >
> > -----Original Message-----
> > From: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED]
> > On Behalf Of Nahum.Wild
> > Sent: Thursday, 4 March 2004 3:37 p.m.
> > To: 'NZ Borland Developers Group - Delphi List'
> > Subject: [DUG] try..finally : Which way is best?
> >
> > Ok so this is something that has bugged me for ages, partly
> because I
> > don't
> > know and partly because I can't be bother trying to figure it out.
> >
> > is the following code ok? or should I give each it's own
> try..finally?
> >
> > --
> >
> > changes := TStringList.create;
> > issues := TIssuesList.create;
> > terrorists := THardToFind.create;
> > try
> >
> > // stuff is done, planes flown.  That type of things.
> >
> > finally
> >   terrorists.free;
> >   issues.free;
> >   changes.free;
> > end;
> >
> > --
> >
> > I mean what could go wrong in the TStringList.create constructor for
> > example?  It's not like there should be anything much in there that
> > could go
> > wrong anyway?  Because if it does except the destructor will be
> > immediately
> > called - learnt that one the hard way many years ago.  As a
> > general rule
> > of
> > thumb I don't put anything significant in a constructor for my own
> > classes -
> > that's what init or setup methods are for.
> >
> > For the record I've never done it this way, I've always given
> > each their
> > own
> > try..finally.
> >
> > Thoughts anyone?
> >
> >
> >
> > Nahum Wild
> > Software Innovator & Process Consultant
> > IFE
> > PayGlobal
> >
> > _______________________________________________
> > Delphi mailing list
> > [EMAIL PROTECTED]
> > http://ns3.123.co.nz/mailman/listinfo/delphi
> >
> > _______________________________________________
> > Delphi mailing list
> > [EMAIL PROTECTED]
> > http://ns3.123.co.nz/mailman/listinfo/delphi
> >
>
> _______________________________________________
> Delphi mailing list
> [EMAIL PROTECTED]
> http://ns3.123.co.nz/mailman/listinfo/delphi
>
> _______________________________________________
> Delphi mailing list
> [EMAIL PROTECTED]
> http://ns3.123.co.nz/mailman/listinfo/delphi
>

_______________________________________________
Delphi mailing list
[EMAIL PROTECTED]
http://ns3.123.co.nz/mailman/listinfo/delphi

Reply via email to