[Vm-dev] primitiveDisplayString fails on empty Strings
Fabio Niephaus
lists at fniephaus.com
Wed May 23 19:11:30 UTC 2018
Hi all,
I noticed that BitBlt's primitiveDisplayString fails relatively often and
then found out that it's sometimes called to draw empty strings.
`(ByteString allInstances select: [:ea | ea isEmpty]) size` revealed that
there are 2245 empty strings in my image and I assume some of them must be
either in the FrameRateMorph morph or in the Clock morph.
Anyway...looking at BitBlt>>#primDisplayString:from:to:map:xTable:kern:,
the fallback code basically does nothing if stopIndex is zero (`startIndex
to: stopIndex do: ...`) which makes sense.
What I think doesn't make sense is that the primitive fails in the first
place. Instead of failing if stopIndex is not greater 0, I would suggest to
use: `stopIndex < 1 ifTrue: [^ interpreterProxy pop: 6].` which cleans up
the stack, leaves the receiver, and returns early.
Let me know what you think!
Fabio
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20180523/8e9b5a7c/attachment.html>
More information about the Vm-dev
mailing list