diff --git a/mi/mipointer.c b/mi/mipointer.c index a90bc94a6..b08de625d 100644 --- a/mi/mipointer.c +++ b/mi/mipointer.c @@ -200,6 +200,8 @@ miPointerDisplayCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor) return FALSE; pPointer = MIPOINTER(pDev); + if (!pPointer) + return FALSE; pPointer->pCursor = pCursor; pPointer->pScreen = pScreen; @@ -222,6 +224,8 @@ miPointerConstrainCursor(DeviceIntPtr pDev, ScreenPtr pScreen, BoxPtr pBox) miPointerPtr pPointer; pPointer = MIPOINTER(pDev); + if (!pPointer) + return; pPointer->limits = *pBox; pPointer->confined = PointerConfinedToScreen(pDev); @@ -273,6 +277,9 @@ miPointerSetCursorPosition(DeviceIntPtr pDev, ScreenPtr pScreen, SetupScreen(pScreen); miPointerPtr pPointer = MIPOINTER(pDev); + if (!pPointer) + return TRUE; + pPointer->generateEvent = generateEvent; if (pScreen->ConstrainCursorHarder) @@ -379,6 +386,8 @@ miPointerWarpCursor(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y) BOOL changedScreen = FALSE; pPointer = MIPOINTER(pDev); + if (!pPointer) + return; if (pPointer->pScreen != pScreen) { mieqSwitchScreen(pDev, pScreen, TRUE); @@ -504,6 +513,9 @@ miPointerInvalidateSprite(DeviceIntPtr pDev) miPointerPtr pPointer; pPointer = MIPOINTER(pDev); + if (!pPointer) + return; + pPointer->pSpriteCursor = (CursorPtr) 1; } @@ -522,6 +534,8 @@ miPointerSetScreen(DeviceIntPtr pDev, int screen_no, int x, int y) miPointerPtr pPointer; pPointer = MIPOINTER(pDev); + if (!pPointer) + return; pScreen = screenInfo.screens[screen_no]; mieqSwitchScreen(pDev, pScreen, FALSE); @@ -566,6 +580,8 @@ miPointerMoveNoEvent(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y) SetupScreen(pScreen); pPointer = MIPOINTER(pDev); + if (!pPointer) + return; /* Hack: We mustn't call into ->MoveCursor for anything but the * VCP, as this may cause a non-HW rendered cursor to be rendered while