this method calls #remove:ifAbsent: on an instance of
IdentityDictionary which causes a shouldNotImplement error when loading the FreeType Plus packages from universes in a squeak-dev-123 image. -- Damien Pollet type less, do more [ | ] http://typo.cdlm.fasmz.org |
Hi Damien,
----- Original Message ----- From: "Damien Pollet" <[hidden email]> To: "The general-purpose Squeak developers list" <[hidden email]>; "Andrew Tween" <[hidden email]> Sent: Friday, May 25, 2007 2:08 PM Subject: [BUG] in FT2Handle class >> deregister > this method calls #remove:ifAbsent: on an instance of > IdentityDictionary which causes a shouldNotImplement error when > loading the FreeType Plus packages from universes in a squeak-dev-123 > image. Thanks. Somehow a class variable for a loaded class has been initialized to an IdentityDictionary rather than to nil. I think there is something odd going on in the squeak-dev-123 image. The following code illustrates this... Object subclass: #TEST instanceVariableNames: '' classVariableNames: 'Registry' poolDictionaries: '' category: 'TEST'. (Smalltalk at: #TEST) classPool at: #Registry It evaluates to an IdentityDictionary() in squeak-dev-beta-123. But, in squeak-dev-beta-115, it evaluates to nil. Why would a class var of a newly created class be initialized to an IdentityDictionary, rather than to nil? Cheers, Andy |
2007/5/25, Andrew Tween <[hidden email]>:
> Hi Damien, > ----- Original Message ----- > From: "Damien Pollet" <[hidden email]> > To: "The general-purpose Squeak developers list" > <[hidden email]>; "Andrew Tween" <[hidden email]> > Sent: Friday, May 25, 2007 2:08 PM > Subject: [BUG] in FT2Handle class >> deregister > > > > this method calls #remove:ifAbsent: on an instance of > > IdentityDictionary which causes a shouldNotImplement error when > > loading the FreeType Plus packages from universes in a squeak-dev-123 > > image. > > Thanks. > Somehow a class variable for a loaded class has been initialized to an > IdentityDictionary rather than to nil. > I think there is something odd going on in the squeak-dev-123 image. > > The following code illustrates this... > > Object subclass: #TEST > instanceVariableNames: '' > classVariableNames: 'Registry' > poolDictionaries: '' > category: 'TEST'. > (Smalltalk at: #TEST) classPool at: #Registry > > It evaluates to an IdentityDictionary() in squeak-dev-beta-123. > But, in squeak-dev-beta-115, it evaluates to nil. > > Why would a class var of a newly created class be initialized to an > IdentityDictionary, rather than to nil? What happens in a stock 3.10 image? I guess the problem comes from a bug in 3.10. -- Damien Cassou |
Hi,
----- Original Message ----- From: "Damien Cassou" <[hidden email]> To: "The general-purpose Squeak developers list" <[hidden email]> Sent: Friday, May 25, 2007 8:16 PM Subject: Re: Something odd in squeak-dev-beta-123? ,(was Re: [BUG] in FT2Handle class >> deregister) <snip> > > Why would a class var of a newly created class be initialized to an > > IdentityDictionary, rather than to nil? > > What happens in a stock 3.10 image? I guess the problem comes from a > bug in 3.10. You are right. The Undeclared global in Squeak3.10alpha.7105 contains an entry for Registry. This is caused by TTCFont class>>registry referencing a class var (Registry) that has been deleted. It can be fixed by evaluating... TTCFont class removeSelector: #registry. Undeclared removeUnreferencedKeys. This then allows the FreeType Plus package to load without error. Cheers, Andy |
Free forum by Nabble | Edit this page |