[Vm-dev] New warnings with new BitBlt primitive
Clément Bera
bera.clement at gmail.com
Wed Jun 6 09:07:52 UTC 2018
Hi all,
Since the recent changes in the BitBlt primitive I now have new warning
failures.
I can't reproduce my use-case in the simulator AFAIK (I use non simulable
code).
Here's the trace I get [1], looks like the code is accessing the byteSizeOf
an oop without checking for forwarders, in my case I have the warning
because the object is a forwarder.
Any idea what this is about? I guess I can provide an image to reproduce
but it's a 150Mb wide 64 bits image...
[1]
* thread #1: tid = 0x44223d, 0x0000000100001783
Squeak`warning(s="(classIndexOf(oop)) > (isForwardedObjectClassIndexPun())
34576") + 19 at gcc3x-interp.c:40, queue = 'com.apple.main-thread', stop
reason = breakpoint 1.1
frame #0: 0x0000000100001783 Squeak`warning(s="(classIndexOf(oop)) >
(isForwardedObjectClassIndexPun()) 34576") + 19 at gcc3x-interp.c:40
[...]
*(lldb)* bt
* thread #1: tid = 0x44223d, 0x0000000100001783
Squeak`warning(s="(classIndexOf(oop)) > (isForwardedObjectClassIndexPun())
34576") + 19 at gcc3x-interp.c:40, queue = 'com.apple.main-thread', stop
reason = breakpoint 1.1
* frame #0: 0x0000000100001783 Squeak`warning(s="(classIndexOf(oop)) >
(isForwardedObjectClassIndexPun()) 34576") + 19 at gcc3x-interp.c:40
frame #1: 0x00000001000438f4 Squeak`byteSizeOf(oop=4633303952) + 100 at
gcc3x-interp.c:34576
frame #2: 0x0000000100107a4f
Squeak`loadBitBltFromwarping(bbObj=4423438048, aBool=0) + 2351 at
BitBltPlugin.c:3373
frame #3: 0x00000001000fd955 Squeak`primitiveDisplayString + 341 at
BitBltPlugin.c:5185
frame #4: 0x0000000100097148 Squeak`primitiveExternalCall + 664 at
gcc3x-interp.c:66133
frame #5: 0x000000010000bc64 Squeak`interpret + 41892 at
gcc3x-interp.c:5679
frame #6: 0x00000001000019b8 Squeak`interpret + 248 at
gcc3x-interp.c:2430
*(lldb)* up
frame #1: 0x00000001000438f4 Squeak`byteSizeOf(oop=4633303952) + 100 at
gcc3x-interp.c:34576
34573 /* begin numBytesOf: */
34574 fmt = (((usqInt) (longAt(oop))) >> (formatShift())) &
(formatMask());
34575 /* begin numSlotsOf: */
-> 34576 assert((classIndexOf(oop)) > (isForwardedObjectClassIndexPun()));
34577 numSlots = byteAt(oop + 7);
34578 numBytes = (numSlots == (numSlotsMask())
34579 ? ((usqInt) (((usqInt)(((sqInt)((usqInt)((longAt(oop -
BaseHeaderSize))) << 8)))))) >> 8
--
Clément Béra
https://clementbera.github.io/
https://clementbera.wordpress.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20180606/5fb18908/attachment-0001.html>
More information about the Vm-dev
mailing list