mi: don't call from miPointerMoved into the spriteFuncs for anything but VCP.
Calling ->MoveCursor for anything but the HW-rendered VCP causes the SW-rendered cursor routines to be started, including mallocs, etc. Since miPointerMoved is called during SIGIO, this is a bad idea.
This commit is contained in:
parent
f611719edc
commit
dfb7de6571
|
@ -530,7 +530,11 @@ miPointerMoved (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y,
|
||||||
|
|
||||||
pPointer = MIPOINTER(pDev);
|
pPointer = MIPOINTER(pDev);
|
||||||
|
|
||||||
if (pDev && pDev->coreEvents
|
/* Hack: We mustn't call into ->MoveCursor for anything but the
|
||||||
|
* VCP, as this may cause a non-HW rendered cursor to be rendered during
|
||||||
|
* SIGIO. This again leads to allocs during SIGIO which leads to SIGABRT.
|
||||||
|
*/
|
||||||
|
if ((pDev == inputInfo.pointer || (!pDev->isMaster && pDev->u.master == inputInfo.pointer))
|
||||||
&& !pScreenPriv->waitForUpdate && pScreen == pPointer->pSpriteScreen)
|
&& !pScreenPriv->waitForUpdate && pScreen == pPointer->pSpriteScreen)
|
||||||
{
|
{
|
||||||
pPointer->devx = x;
|
pPointer->devx = x;
|
||||||
|
|
Loading…
Reference in New Issue