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>: