<!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">
Hi Dave,<br>
<br>
On 3/18/2024 12:35 PM, lewis--- via Cuis-dev wrote:
<blockquote
cite="mid:23c0f7adab9a3dcc249c0f3a2b16323c@mail.msen.com"
type="cite">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<p> Hi Juan,</p>
<p id="reply-intro">On 2024-03-17 18:17, Juan Vuletich via
Cuis-dev wrote:</p>
<blockquote type="cite" style="padding: 0pt 0.4em; border-left:
2px solid rgb(16, 16, 255); margin: 0pt;">
<div id="replybody1">
<div>Hi Dave,<br>
<br>
On 3/16/2024 6:22 PM, lewis--- via Cuis-dev wrote:As I said
in a separate email, Vanessa found the origin of the
problem, and the fix is now at GitHub.<br>
<br>
Still, as you say, the primitive fails, both in Cuis and
Squeak, but only the first time it is called. The lines are
read in reverse order, so the line that is first copied is
actually the last one.<br>
<br>
In #read24BmpLine:into:startingAt:width:, at the start of
the fallback code, I added this line: `{formBitsIndex+width.
formBits size} print.`. Then tried to load Hilaire's BMP. In
the Transcript I got #(63601 63600). So, in
BMPReadWriterPlugin.c, the lines that read:<br>
<br>
if (!(((formBitsIndex + width) <= formBitsSize)<br>
&& ((width * 3) <= pixelLineSize))) {<br>
return primitiveFail();<br>
<br>
should actually read<br>
<br>
if (!(((formBitsIndex + width - 1) <= formBitsSize)<br>
&& ((width * 3) <= pixelLineSize))) {<br>
return primitiveFail();<br>
<br>
and the primitive will not fail.<br>
<br>
It is a minor bug, with no practical consequences, so this
is not really important. But I found this while
investigating the BMP read failure, and I thought it was
worth commenting.<br>
<br>
Thanks,</div>
</div>
</blockquote>
<p><br>
</p>
<p>The expression appears in both
BMPReadWriterPlugin>>primitiveRead24BmpLine and
BMPReadWriterPlugin>>primitiveWrite24BmpLine. Can you
please confirm my assumption that the same fix should be applied
to both methods? Sorry if this is obvious but I just want to be
sure.</p>
<p>Thanks!</p>
<p>Dave</p>
</blockquote>
<br>
Yep. Checking the code in both methods it is pretty clear that they
are analogous. In any case, I did some quick testing, and in both
cases the primitive fails exactly once and for the same value of the
parameters. The tweak should be same in both cases.<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>