[Vm-dev] Windows VM broken for ioShowDisplay

Tobias Pape Das.Linux at gmx.de
Mon Nov 14 11:57:05 UTC 2022

Maybe someone can revoke my C-license?
It's the second time I introduced a Leak with the DPI stuff -.-

> On 14. Nov 2022, at 12:13, Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com> wrote:
> Hmm, maybe a clue:
>     static double getDpiSystem(void)
>     {
>          return (double) GetDeviceCaps(GetWindowDC(stWindow), LOGPIXELSY);
>     } 
> shouldn't there be a ReleaseDC here ?

Probably. I didn't know that this stuff acquired something, but is makes sense.
Shall I or do you want?


> Le lun. 14 nov. 2022 à 12:10, Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com> a écrit :
> I confirm that it is a GDI LEAK.
> If I display the number of GDI objects in the task manager, I see that the number grows up to 10,000 at which time the image hangs...
> Le lun. 14 nov. 2022 à 11:24, Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com> a écrit :
> Sorry, for shorten message, continued below...
> Le lun. 14 nov. 2022 à 11:18, Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com> a écrit :
> Hi all,
> as Eliot already reported in October, after a few minutes, the 64bits image locks up on windows.
> The console reports an error from within ioShowDisplay
>     SetDIBitsToDevice failed (0)
>     width=1364,height=757,bits=7FF7471D68E8,dc=FFFFFFFF9D010B72
> then several other gdi calls start to fail, like
>     CreateCursor failed (0)
> a bit further, SetDIBitsToDevice failed (8), the error message concerns 
>  The error message a bit further is about insufficient memory resources to perform the SetDIBitsToDevice
> If I open an image, leave it alone, and observe the Squeak.exe process in TaskManager, I clearly see a memory leak.
> The error happens after about 15 or 16Mbytes increase.
> So we should track the origin of un-released resources, and the problem will then probably vanish.
> For now, it's a show-stopper for me.
> Nicolas

More information about the Vm-dev mailing list