<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=text/html;charset=iso-8859-1 http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.6001.18928"></HEAD>
<BODY style="PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 15px"
id=MailContainerBody leftMargin=0 topMargin=0 CanvasTabStop="true"
name="Compose message area">
<DIV style="FONT: 10pt Tahoma">
<DIV><FONT face=Arial>I found the problem!</FONT></DIV><FONT
face=Arial></FONT></DIV>
<DIV style="FONT: 10pt Tahoma"> </DIV>
<DIV style="FONT: 10pt Tahoma"><FONT face=Arial>Of course, it was my code
causing this. I was doing the equivalent of:</FONT></DIV>
<DIV style="FONT: 10pt Tahoma"><FONT face=Arial></FONT> </DIV>
<DIV style="FONT: 10pt Tahoma"><FONT face=Arial> Object
new becomeForward: nil.</FONT></DIV>
<DIV><FONT face=Arial></FONT> </DIV>
<DIV><FONT size=2 face=Arial>and this was nilling out the contents of that
KnownEnvironments dictionary. I tested with the above code, without my
code, and indeed it caused the problem. I am now avoiding both
SmallIntegers and nil when using #becomeForward:</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<DIV><FONT size=2 face=Arial>Thanks for everyone's help in this
matter!</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<DIV><FONT size=2 face=Arial>Rob</FONT></DIV>
<DIV style="FONT: 10pt Tahoma"><BR></DIV>
<DIV style="FONT: 10pt Tahoma; BACKGROUND: #f5f5f5">
<DIV style="font-color: black"><B>From:</B> <A title=eliot.miranda@gmail.com
href="mailto:eliot.miranda@gmail.com">Eliot Miranda</A> </DIV>
<DIV><B>Sent:</B> Tuesday, July 13, 2010 5:03 PM</DIV>
<DIV><B>To:</B> <A
title="mailto:squeak-dev@lists.squeakfoundation.org CTRL + Click to follow link"
href="mailto:squeak-dev@lists.squeakfoundation.org">The general-purpose Squeak
developers list</A> </DIV>
<DIV><B>Subject:</B> Re: [squeak-dev] Re: UI lockup in Squeak 4.1</DIV></DIV>
<DIV><FONT size=2 face=Arial></FONT><FONT size=2
face=Arial></FONT><BR></DIV><BR><BR>
<DIV class=gmail_quote>On Tue, Jul 13, 2010 at 1:53 PM, Rob Withers <SPAN
dir=ltr><<A
href="mailto:reefedjib@yahoo.com">reefedjib@yahoo.com</A>></SPAN> wrote:<BR>
<BLOCKQUOTE
style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex"
class=gmail_quote><FONT size=2 face=Arial></FONT><FONT size=2
face=Arial></FONT><BR>
<BLOCKQUOTE
style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex"
class=gmail_quote>From: Eliot Miranda<BR>Sent: Tuesday, July 13, 2010 4:11
PM
<DIV class=im><FONT size=2 face=Arial></FONT><FONT size=2
face=Arial></FONT><BR>To: The general-purpose Squeak developers
list<BR></DIV>
<DIV class=im>Subject: Re: [squeak-dev] Re: UI lockup in Squeak
4.1<BR><BR><BR><BR><BR><BR></DIV>
<DIV class=im>> On Tue, Jul 13, 2010 at 12:59 PM, Rob Withers <<A
href="mailto:reefedjib@yahoo.com" target=_blank>reefedjib@yahoo.com</A>>
> wrote:<BR>><BR>> Hi Eliot,<BR>><BR>><BR>> I already
found it.<BR>><BR><BR>Doh!<BR><BR>> It is this method, when the
result of the dictionary lookup is nil for > 'en', and it recursively
calls localeID: with 'en'.<BR>><BR>><BR>> LanguageEnvironment
class>>#localeID: localeID<BR>> ^self knownEnvironments at:
localeID ifAbsent: [self localeID: (LocaleID<BR>> isoLanguage:
'en')]<BR>><BR><BR><BR>which clearly needs to read something
like<BR> LanguageEnvironment class>>#localeID: localeID<BR>
^self knownEnvironments<BR> at:
localeID<BR> ifAbsent: [self knownEnvironments at:
(LocaleID isoLanguage: 'en')]<BR><BR></DIV></BLOCKQUOTE><BR>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.<BR><BR>I had in mind:
<DIV class=im><BR>LanguageEnvironment class>>#localeID:
localeID<BR><BR> ^self knownEnvironments<BR> at:
localeID<BR> ifAbsent: [<BR></DIV>
| env id |<BR> env :=
Latin1Environment new.<BR> id := LocaleID
isoString: 'en'.<BR> env localeID:
id.<BR> self knownEnvironments at: id put:
env.<BR> ^ env].
<DIV class=im><BR></DIV></BLOCKQUOTE>
<DIV> </DIV>
<DIV><SPAN
style="BORDER-COLLAPSE: collapse; FONT-FAMILY: arial, sans-serif; FONT-SIZE: 13px"
class=Apple-style-span>LanguageEnvironment class>>#localeID:
localeID<BR> ^self knownEnvironments<BR>
at: localeID<BR> ifAbsent: [self
knownEnvironments</SPAN></DIV>
<DIV><SPAN
style="BORDER-COLLAPSE: collapse; FONT-FAMILY: arial, sans-serif; FONT-SIZE: 13px"
class=Apple-style-span>
at: (LocaleID isoLanguage:
'en')</SPAN></DIV>
<DIV><SPAN
style="BORDER-COLLAPSE: collapse; FONT-FAMILY: arial, sans-serif; FONT-SIZE: 13px"
class=Apple-style-span>
ifAbsentPut:</SPAN></DIV>
<DIV><SPAN
style="BORDER-COLLAPSE: collapse; FONT-FAMILY: arial, sans-serif; FONT-SIZE: 13px"
class=Apple-style-span>
[</SPAN><SPAN
style="BORDER-COLLAPSE: collapse; FONT-FAMILY: arial, sans-serif; FONT-SIZE: 13px"
class=Apple-style-span>Latin1Environment new</SPAN></DIV>
<DIV><SPAN
style="BORDER-COLLAPSE: collapse; FONT-FAMILY: arial, sans-serif; FONT-SIZE: 13px"
class=Apple-style-span>
</SPAN><SPAN
style="BORDER-COLLAPSE: collapse; FONT-FAMILY: arial, sans-serif; FONT-SIZE: 13px"
class=Apple-style-span>localeID: (</SPAN><SPAN
style="BORDER-COLLAPSE: collapse; FONT-FAMILY: arial, sans-serif; FONT-SIZE: 13px"
class=Apple-style-span>LocaleID isoString: 'en');</SPAN></DIV>
<DIV><SPAN
style="BORDER-COLLAPSE: collapse; FONT-FAMILY: arial, sans-serif; FONT-SIZE: 13px"
class=Apple-style-span></SPAN><SPAN
style="BORDER-COLLAPSE: collapse; FONT-FAMILY: arial, sans-serif; FONT-SIZE: 13px"
class=Apple-style-span>
yourself]]</SPAN></DIV>
<DIV> </DIV>
<DIV>No?</DIV>
<DIV><BR></DIV>
<BLOCKQUOTE
style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex"
class=gmail_quote>
<DIV class=im><BR><BR>
<BLOCKQUOTE
style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex"
class=gmail_quote><BR>> I start the image with an intact
KnownEnvironments. Something somehow > nils out the entries after
I > > > have run for awhile. ??????<BR>><BR><BR>So guard
against resetKnownEnvironments?<BR></BLOCKQUOTE><BR></DIV>I had a 'self halt'
and it never got called.<BR><BR>I have no idea how it was nilling out the
entries.<BR></BLOCKQUOTE>
<DIV><BR></DIV>
<DIV>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...</DIV>
<DIV><BR></DIV>
<BLOCKQUOTE
style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex"
class=gmail_quote><FONT
color=#888888><BR>Rob<BR><BR><BR><BR></FONT></BLOCKQUOTE></DIV><BR>
<P>
<HR>
<P></P><BR></BODY></HTML>