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?
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
I tried it and the image did not explode to my face so far... http://smalltalkhub.com/?_escaped_fragment_=/~nice/NiceVMExperiments/version...
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
I opened http://bugs.squeak.org/view.php?id=7794 Since the Pharo chiism, I don't know where to open a cog issue...
2013/10/24 Nicolas Cellier nicolas.cellier.aka.nice@gmail.com
I tried it and the image did not explode to my face so far...
http://smalltalkhub.com/?_escaped_fragment_=/~nice/NiceVMExperiments/version...
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
vm-dev@lists.squeakfoundation.org