<!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>