<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<div id="divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:rgb(0,0,0); font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols">
<p>Hi Eliot,</p>
<p><br>
</p>
<p>> <span style="font-size:12pt">ifNotNil: is inlined.  It is equivalent to this, but saves the temp decl, which is why it's so nice.</span></p>
<div>> </div>
<div>> | obj |</div>
<div>> obj := TheClass someInstance.</div>
<div>> obj == nil ifFalse: [obj chasePointers]</div>
<p></p>
<div id="divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:rgb(0,0,0); font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols">
<br>
</div>
Why won't #chasePointers pick up the obj tempvar from the snippet above? Is this just because contexts are only married on demand?</div>
<div id="divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:rgb(0,0,0); font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols">
<br>
</div>
<div id="divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:rgb(0,0,0); font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols">
Best,</div>
<div id="divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:rgb(0,0,0); font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols">
Christoph</div>
<div id="divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:rgb(0,0,0); font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols">
<br>
<div style="color:rgb(0,0,0)">
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>Von:</b> Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.org> im Auftrag von Eliot Miranda <eliot.miranda@gmail.com><br>
<b>Gesendet:</b> Donnerstag, 29. Dezember 2022 04:21 Uhr<br>
<b>An:</b> Chris Muller<br>
<b>Cc:</b> The general-purpose Squeak developers list<br>
<b>Betreff:</b> Re: [squeak-dev] Constantly growing Image file</font>
<div> </div>
</div>
<div>
<div dir="ltr">
<div dir="ltr">
<div class="gmail_default" style="font-size:small">Hi Chris,</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Tue, Dec 27, 2022 at 11:50 AM Chris Muller <<a href="mailto:ma.chris.m@gmail.com">ma.chris.m@gmail.com</a>> wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex; border-left-width:1px; border-left-style:solid; border-left-color:rgb(204,204,204); padding-left:1ex">
<div dir="ltr">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex; border-left-width:1px; border-left-style:solid; border-left-color:rgb(204,204,204); padding-left:1ex">
<div dir="auto">
<blockquote type="cite">
<div dir="ltr">
<div dir="ltr">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex; border-left-width:1px; border-left-style:solid; border-left-color:rgb(204,204,204); padding-left:1ex">
<div dir="auto">
<div dir="auto">If the latter is the case, it would be a Heisentool, where the attempt of using it changes that which it is supposed to observe. :-P</div>
</div>
</blockquote>
<div><br>
</div>
<div>Which is why I don't use the pointer explorer when I'm trying to clean all instance of a class out.  Instead:</div>
<div><br>
</div>
<div>    TheClass allInstances anyOne chasePointers</div>
</div>
</div>
</div>
</blockquote>
<br>
<div>
<div dir="ltr">
<div dir="ltr">
<div class="gmail_quote">TheClass someInstance ifNotNil: [:obj| obj chasePointers]</div>
</div>
</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>Ah, I will start using #someInstance, but typing ifNotNil: is a lot more work than closing a debugger when no more instances.  Besides, wouldn't the Block Context's var, "obj" be another possible reference that #chasePointers might pick up on?</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div class="gmail_default" style="font-size:small">ifNotNil: is inlined.  It is equivalent to this, but saves the temp decl, which is why it's so nice.</div>
<div class="gmail_default" style="font-size:small"><br>
</div>
<div class="gmail_default" style="font-size:small">| obj |</div>
<div class="gmail_default" style="font-size:small">obj := TheClass someInstance.</div>
<div class="gmail_default" style="font-size:small">obj == nil ifFalse: [obj chasePointers]</div>
</div>
<div><br>
</div>
<div dir="ltr" class="gmail_signature">
<div dir="ltr">
<div><span style="font-size:small; border-collapse:separate">
<div>_,,,^..^,,,_<br>
</div>
<div>best, Eliot</div>
</span></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>