I tried it and the image did not explode to my face so far...
http://smalltalkhub.com/?_escaped_fragment_=/~nice/NiceVMExperiments/versions/VMMaker.oscog-nice.338#!/~nice/NiceVMExperiments/versions/VMMaker.oscog-nice.338


2013/10/24 tim Rowledge <tim@rowledge.org>


On 23-10-2013, at 4:31 PM, Nicolas Cellier <nicolas.cellier.aka.nice@gmail.com> wrote:

> I wonder why there is not a:
>
>     "store destX back"
>     interpreterProxy storeInteger: BBDestXIndex ofObject: bitBltOop withValue: destX.
>
> at the end of primitiveDisplayString (that is, only in case of success).
>
> That would properly advance the destX, and would avoid the guard in StrikeFont>>displayString:on:from:to:at:kern:
>
> Or did I miss something?

No, I rather suspect that is simply a bug. Fixing it would probably be of some useful performance benefit too, though it might take a moments head-scratching to be sure about a good safe work-around for fixing the work-around. Some test like aBitBlt destX = aPoint x ifTrue:["old fixup"] ifFalse:[^aBitBlt destX @ aPoint y] would probably be about the thing.


tim
--
tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim
Strange Opcodes: ZZZZZZZZZZZZ: enter sleep mode