<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
<title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
On 10/29/2023 6:28 PM, Nicolás Papagna Maldonado via Cuis-dev wrote:
<blockquote
cite="mid:CADGn7BMDRSHHS=4JwuEcEc-mtrvQgHXQroxTvnnTK0j5v2Rbvg@mail.gmail.com"
type="cite">
<div dir="ltr">Hi folks,
<div><br>
</div>
<div>The attached changeset fixes a bug that caused the image to
freeze when inspecting objects with huge #<font
face="monospace">printOn:</font> results.</div>
<div><br>
</div>
<div>To reproduce the error:</div>
<div>
<ol>
<li>Open a workspace</li>
<li>Evaluate <font face="monospace">CompiledMethod
allInstances inject: Dictionary new into: [ :dict
:method | dict at: method put: method sourceCode. dict
]</font></li>
An inspector will be opened on the dictionary created above
<li>Click on <font face="monospace">self</font></li>
<li>Notice the image hangs while waiting for the <font
face="monospace">#printOn: </font>message send.</li>
</ol>
To fix this bug, I limited the time to print the selected item
to 300 milliseconds and showed an appropriate error message
when that happened.</div>
<div><br>
</div>
<div>LMK your thoughts.</div>
<div><br>
</div>
<div>Cheers,</div>
<div>Nico PM</div>
</div>
</blockquote>
<br>
Hi Nico,<br>
<br>
I think that using #valueWithin:onTimeout: is like shooting a
mosquito with a gun. I preferred a solution with two parts:<br>
- printing a Dictionary doesn't need to sort the keys. Dictionaries
are not sorted.<br>
- Any stepping morph that takes longer than its #stepTime will be
limited in its stepping time so GUI stays (barely) responsive.<br>
<br>
Updates now at GitHub.<br>
<br>
Thanks,<br>
<pre class="moz-signature" cols="72">--
Juan Vuletich
cuis.st
github.com/jvuletich
researchgate.net/profile/Juan-Vuletich
independent.academia.edu/JuanVuletich
patents.justia.com/inventor/juan-manuel-vuletich
linkedin.com/in/juan-vuletich-75611b3
twitter.com/JuanVuletich</pre>
</body>
</html>