[fpc-pascal] FindFirst...FindClose

Leonardo M. Ramé martinrame at yahoo.com
Mon May 18 21:06:30 CEST 2009


This sounds good, just also check what happens if FindClose receives an invalid handle.

Leonardo M. Ramé
http://leonardorame.blogspot.com


--- On Mon, 5/18/09, Michael Van Canneyt <michael at freepascal.org> wrote:

> From: Michael Van Canneyt <michael at freepascal.org>
> Subject: Re: [fpc-pascal] FindFirst...FindClose
> To: "FPC-Pascal users discussions" <fpc-pascal at lists.freepascal.org>
> Date: Monday, May 18, 2009, 4:03 PM
> 
> 
> On Mon, 18 May 2009, Marco van de Voort wrote:
> 
> > In our previous episode, Jonas Maebe said:
> >>>>
> >>>> Yes.
> >>>
> >>> Huh ? Since when is this requirement ?
> >>
> >> Since as long as I can remember. It at least
> predates the switch to
> >> svn (revision 1 of both rtl/unix/dos.pp and of
> rtl/unix/sysutils.pp
> >> requires it).
> >
> > The current situation is probably simply the old
> "linux" unit routines
> > folded into sysutils. The fact that it is documented
> that way probably makes
> > it more than likely it was no mistake.
> 
> Given that I documented it, I'd rather say that I was
> sloppy in the
> formulation. I've always assumed that the findclose was
> only needed
> in case of a _succesful_ findfirst, i.e. one that returns
> 0.
> And I've seen a lot of code that assumes the same
> (admittedly, it was
> Win32 code).
> 
> Once more, if this is so, there is a lot of code that needs
> to be
> checked in FPC. It might be easier to "fix" findfirst so
> that in case
> of an error (nonzero return value), the searchrec record is
> cleared,
> and the findclose() call is redundant.
> 
> I checked the windows code, and FindClose explicitly checks
> that
> the searchrec record contains a valid handle (i.e. NOT
> INVALID_HANDLE_VALUE), so all platforms would behave the
> same.
> 
> Opinions ? If no-one objects, I'll implement the 'fix',
> it's only
> 2 lines of code.
> 
> Michael.
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
> 


      



More information about the fpc-pascal mailing list