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 |
Hi Clément,
On Wed, Jun 6, 2018 at 2:07 AM, Clément Bera <[hidden email]> wrote:
Right. It looks to be an old bug that the new primitiveDisplayString short-cut for zero-sided strings exposes. I've fixed the VMMaker.oscog package. Am just regenerating the plugin now.
_,,,^..^,,,_ best, Eliot |
Free forum by Nabble | Edit this page |