<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body style='font-size: 10pt; font-family: Verdana,Geneva,sans-serif'>
<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: 0 0.4em; border-left: #1010ff 2px solid; margin: 0">
<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>
<div id="signature"></div>
<p><br /></p>
</body></html>