<div dir="ltr">Hi Nicolas,<div><br></div><div>    also...<br><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Nov 13, 2016 at 1:27 AM,  <span dir="ltr"><<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><br>
Nicolas Cellier uploaded a new version of VMMaker to project VM Maker:<br>
<a href="http://source.squeak.org/VMMaker/VMMaker.oscog-nice.1988.mcz" rel="noreferrer" target="_blank">http://source.squeak.org/<wbr>VMMaker/VMMaker.oscog-nice.<wbr>1988.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: VMMaker.oscog-nice.1988<br>
Author: nice<br>
Time: 13 November 2016, 10:26:14.021969 am<br>
UUID: 01ed55f2-205d-441f-b4f6-<wbr>4a8607b3327d<br>
Ancestors: VMMaker.oscog-nice.1987<br>
<br>
Fix inlining problem of shortPrintContext: - a side effect was eliminated on stack flavour.<br>
<br>
Fix prototype of unlockSurfaceFn after recent platforms source file revision.<br></blockquote><div>...</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Item was changed:<br>
  ----- Method: BitBltSimulation>><wbr>unlockSurfaces (in category 'surface support') -----<br>
  unlockSurfaces<br>
        "Unlock the bits of any OS surfaces."<br>
        "See the comment in lockSurfaces. Similar rules apply. That is, the area provided in ioUnlockSurface can be used to determine the dirty region after drawing. If a source is unlocked, then the area will be (0,0,0,0) to indicate that no portion is dirty."<br>
        | sourceHandle destHandle destLocked fn |<br>
+       <var: #fn declareC:'int (*fn)(int, int, int, int, int)'><br>
-       <var: #fn declareC:'sqInt (*fn)(sqInt, sqInt, sqInt, sqInt, sqInt)'><br>
        hasSurfaceLock ifTrue:[<br>
                unlockSurfaceFn = 0 ifTrue:[self loadSurfacePlugin ifFalse:[^nil]].<br>
+               fn := self cCoerce: unlockSurfaceFn to: 'int (*)(int, int, int, int, int)'.<br>
-               fn := self cCoerce: unlockSurfaceFn to: 'sqInt (*)(sqInt, sqInt, sqInt, sqInt, sqInt)'.<br>
                destLocked := false.<br>
                destHandle := interpreterProxy fetchPointer: FormBitsIndex ofObject: destForm.<br>
                (interpreterProxy isIntegerObject: destHandle) ifTrue:[<br>
                        destHandle := interpreterProxy integerValueOf: destHandle.<br>
                        "The destBits are always assumed to be dirty"<br>
                        self cCode:'fn(destHandle, affectedL, affectedT, affectedR-affectedL, affectedB-affectedT)'.<br>
                        destBits := destPitch := 0.<br>
                        destLocked := true.<br>
                ].<br>
                noSource ifFalse:[<br>
                        sourceHandle := interpreterProxy fetchPointer: FormBitsIndex ofObject: sourceForm.<br>
                        (interpreterProxy isIntegerObject: sourceHandle) ifTrue:[<br>
                                sourceHandle := interpreterProxy integerValueOf: sourceHandle.<br>
                                "Only unlock sourceHandle if different from destHandle"<br>
                                (destLocked and:[sourceHandle = destHandle])<br>
                                        ifFalse:[self cCode: 'fn(sourceHandle, 0, 0, 0, 0)'].<br>
                                sourceBits := sourcePitch := 0.<br>
                        ].<br>
                ].<br>
                hasSurfaceLock := false.<br>
                self cCode: [] inSmalltalk:<br>
                        [self touch: fn.<br>
                         interpreterProxy displayObject = destForm ifTrue:<br>
                                [interpreterProxy getDeferDisplayUpdates "for some reason this is true..."<br>
                                        ifTrue:<br>
                                                [interpreterProxy fullDisplayUpdate]<br>
                                        ifFalse:<br>
                                                [interpreterProxy fullDisplayUpdate]]].<br>
        ].!<br></blockquote><div><br></div><div>why are you making the first argument int instead of usqIntptr_t?  The first argument is an arbitrary handle and that means it could be a pointer, right? And so could be 64-bits, right?</div></div><br><div 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>