[squeak-dev] Re: UI lockup in Squeak 4.1
Eliot Miranda
eliot.miranda at gmail.com
Tue Jul 13 21:03:51 UTC 2010
On Tue, Jul 13, 2010 at 1:53 PM, Rob Withers <reefedjib at yahoo.com> wrote:
>
> From: Eliot Miranda
>> Sent: Tuesday, July 13, 2010 4:11 PM
>>
>> To: The general-purpose Squeak developers list
>> Subject: Re: [squeak-dev] Re: UI lockup in Squeak 4.1
>>
>>
>>
>>
>>
>> > On Tue, Jul 13, 2010 at 12:59 PM, Rob Withers <reefedjib at yahoo.com> >
>> wrote:
>> >
>> > Hi Eliot,
>> >
>> >
>> > I already found it.
>> >
>>
>> Doh!
>>
>> > It is this method, when the result of the dictionary lookup is nil for
>> > 'en', and it recursively calls localeID: with 'en'.
>> >
>> >
>> > LanguageEnvironment class>>#localeID: localeID
>> > ^self knownEnvironments at: localeID ifAbsent: [self localeID: (LocaleID
>> > isoLanguage: 'en')]
>> >
>>
>>
>> which clearly needs to read something like
>> LanguageEnvironment class>>#localeID: localeID
>> ^self knownEnvironments
>> at: localeID
>> ifAbsent: [self knownEnvironments at: (LocaleID isoLanguage: 'en')]
>>
>>
> The problem is that something changed the entry for 'en' from
> Latin1Environment to nil. So the absent block will still fail, although
> this time as an Error and not a recursive, memory-growing loop.
>
> I had in mind:
>
> LanguageEnvironment class>>#localeID: localeID
>
> ^self knownEnvironments
> at: localeID
> ifAbsent: [
> | env id |
> env := Latin1Environment new.
> id := LocaleID isoString: 'en'.
> env localeID: id.
> self knownEnvironments at: id put: env.
> ^ env].
>
>
LanguageEnvironment class>>#localeID: localeID
^self knownEnvironments
at: localeID
ifAbsent: [self knownEnvironments
at: (LocaleID isoLanguage: 'en')
ifAbsentPut:
[Latin1Environment new
localeID: (LocaleID isoString: 'en');
yourself]]
No?
>
>
>> > I start the image with an intact KnownEnvironments. Something somehow
>> > nils out the entries after I > > > have run for awhile. ??????
>> >
>>
>> So guard against resetKnownEnvironments?
>>
>
> I had a 'self halt' and it never got called.
>
> I have no idea how it was nilling out the entries.
>
Are there any senders of knownEnvironments and removeKey: et al? Do you
have changes to Dictionary grow code which causes a bug on rehash? etc...
> Rob
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20100713/f652b7ec/attachment.htm
More information about the Squeak-dev
mailing list
|