[BUG][FIX] FileDirectory (on Windows)

Stephen Pair spair at acm.org
Wed Dec 4 17:35:38 UTC 2002


Looks like update 5114 may be part of the problem (it adds a check to
see if the zero-th entry is a directory...it is assuming that this will
always be the "." entry).  I think the real problem is in the platform
specific code of the primitive (FilePlugin>>primitiveDirectoryLookup).
I don't get a "." entry for "c:" or "c:\"...matter of fact, I don't
think I get any directory entries (only actual files).  The old code
probably just happened to work because it didn't care whether the entry
was a directory or not.  Actually, checking that it is a directory
probably isn't the right thing to do (perhaps not all platforms will
answer the  "." entry for the first item in a directory).

Now, I'm a bit surprised to see that your 5109 image gets infinite
recursion "(FileDirectory on: 'c:\ned') assureExistence" ...can you
check into why you're getting that result?  I'd be a bit surprised that
"(FileDirectory on: 'c:') exists" is answering false in a pre-5114
image.  Is something else causing the infinite recursion in that image?

- Stephen

> -----Original Message-----
> From: squeak-dev-admin at lists.squeakfoundation.org 
> [mailto:squeak-dev-admin at lists.squeakfoundation.org] On 
> Behalf Of Ned Konz
> Sent: Wednesday, December 04, 2002 12:11 PM
> To: squeak-dev at lists.squeakfoundation.org
> Subject: Re: [BUG][FIX] FileDirectory (on Windows)
> 
> 
> On Wednesday 04 December 2002 08:34 am, Ned Konz wrote:
> > On Wednesday 04 December 2002 07:47 am, Stephen Pair wrote:
> > > Recently, I've encountered a serious bug on Windows.  I've just 
> > > starting running squeak out of c:\squeak, and I found 
> that trying to 
> > > install SqueakMap packages would occasionally cause things to go 
> > > into an infinite recursion.  Upon further inspection, I 
> discovered 
> > > that it was happening on
> > > FileDirectory>>assureExistence...to recreate, you can do the
> > > following:
> > >
> > >         (FileDirectory on: 'c:\squeak') assureExistence
> >
> > Oddly enough, on my Win2K system, the following answer true before 
> > applying your fix:
> >
> > (FileDirectory on: 'c:\ned') exists
> > (FileDirectory on: 'c:\') exists
> >
> > Though I get infinite recursion on
> > (FileDirectory on: 'c:\ned') assureExistence
> 
> That was on a 3.4a-5109 system.
> 
> Updating to the current version of 3.4b causes these to 
> return false: (FileDirectory on: 'c:\') exists (FileDirectory 
> on: 'c:') exists
> 
> -- 
> Ned Konz
> http://bike-nomad.com
> GPG key ID: BEEA7EFE
> 
> 
> 




More information about the Squeak-dev mailing list