Aha!
If this was in a Cuis image, that image probably did not get the fix we did in DisplayScreen >> restore
restore | priorBits | priorBits := bits. "Must avoid to be GC'ed!" self setExtent: self class actualScreenSize depth: self nativeDepth. self beDisplay. priorBits := nil. "Documentation only." Project current ifNotNil: [:p| p displaySizeChanged].
For Cuis 5.0 and Cuis 6.0, this fix should probably be in DisplayScreen >> setExtent:depth:, where bits is cleared and thus can be GC'ed .
No, this cannot be fixed only in the VM platform code. The image allocates memory for the bits and communicates a pointer to that to the platform code via #beDisplay. Whenever those bits change, new bits must be communicated via #beDisplay *before* the GC collects the old bits. Image code must ensure that with a strong reference.
Well, this is no new behavior. The issue can also occur with the 2022-06 OSVM. But it is (still) rare. Probably related to how much old space the image uses. Definitely GC-related.
Best, Marcel
Am 06.12.2023 21:12:16 schrieb Eliot Miranda eliot.miranda@gmail.com: