- the fix kernel panics caused by screenimage in devdraw being temporarily nil.
properly acquire the drawlock while setting screensize.
the patch to screen.c will even work if devdraw.c is not updated, as the interface
was not changed. all what happens is that the softscreen will never get freed
as devdraw will create its own Memdata/Memimage so the refcount will not drop
on gscreen when deletescreenimage() is called.
the patch to screen.c also simplifies screensize() as we dont need to keep
track of the softscreen anymore. just calling freememimage(gscreen) on the
old gscreen will do the job. the gscreendata was made a local static variable
as its only used when we create gscreen with hardscreen framebuffer in
screensize().
|