More NULL checks. These ones are more useful than the last (which just made

debugging a bunch of problems easier), since you can implement less in
    the basic simplest case driver now (not that i'm lazy, mind :-p)
This commit is contained in:
Jaymz Julian 2004-02-04 16:08:27 +00:00
parent 3c64b65d80
commit af798d2774

View File

@ -215,13 +215,14 @@ KdDisableScreen (ScreenPtr pScreen)
KdSetRootClip (pScreen, FALSE); KdSetRootClip (pScreen, FALSE);
KdDisableColormap (pScreen); KdDisableColormap (pScreen);
KdOffscreenSwapOut (pScreen); KdOffscreenSwapOut (pScreen);
if (!pScreenPriv->screen->dumb) if (!pScreenPriv->screen->dumb && pScreenPriv->card->cfuncs->disableAccel)
(*pScreenPriv->card->cfuncs->disableAccel) (pScreen); (*pScreenPriv->card->cfuncs->disableAccel) (pScreen);
if (!pScreenPriv->screen->softCursor) if (!pScreenPriv->screen->softCursor && pScreenPriv->card->cfuncs->disableCursor)
(*pScreenPriv->card->cfuncs->disableCursor) (pScreen); (*pScreenPriv->card->cfuncs->disableCursor) (pScreen);
if (pScreenPriv->card->cfuncs->dpms) if (pScreenPriv->card->cfuncs->dpms)
(*pScreenPriv->card->cfuncs->dpms) (pScreen, KD_DPMS_NORMAL); (*pScreenPriv->card->cfuncs->dpms) (pScreen, KD_DPMS_NORMAL);
pScreenPriv->enabled = FALSE; pScreenPriv->enabled = FALSE;
if(pScreenPriv->card->cfuncs->disable)
(*pScreenPriv->card->cfuncs->disable) (pScreen); (*pScreenPriv->card->cfuncs->disable) (pScreen);
} }
@ -283,13 +284,14 @@ KdEnableScreen (ScreenPtr pScreen)
if (pScreenPriv->enabled) if (pScreenPriv->enabled)
return TRUE; return TRUE;
if(pScreenPriv->card->cfuncs->enable)
if (!(*pScreenPriv->card->cfuncs->enable) (pScreen)) if (!(*pScreenPriv->card->cfuncs->enable) (pScreen))
return FALSE; return FALSE;
pScreenPriv->enabled = TRUE; pScreenPriv->enabled = TRUE;
pScreenPriv->card->selected = pScreenPriv->screen->mynum; pScreenPriv->card->selected = pScreenPriv->screen->mynum;
if (!pScreenPriv->screen->softCursor) if (!pScreenPriv->screen->softCursor && pScreenPriv->card->cfuncs->enableCursor)
(*pScreenPriv->card->cfuncs->enableCursor) (pScreen); (*pScreenPriv->card->cfuncs->enableCursor) (pScreen);
if (!pScreenPriv->screen->dumb) if (!pScreenPriv->screen->dumb && pScreenPriv->card->cfuncs->enableAccel)
(*pScreenPriv->card->cfuncs->enableAccel) (pScreen); (*pScreenPriv->card->cfuncs->enableAccel) (pScreen);
KdOffscreenSwapIn (pScreen); KdOffscreenSwapIn (pScreen);
KdEnableColormap (pScreen); KdEnableColormap (pScreen);
@ -310,6 +312,7 @@ KdResume (void)
KdDoSwitchCmd ("resume"); KdDoSwitchCmd ("resume");
for (card = kdCardInfo; card; card = card->next) for (card = kdCardInfo; card; card = card->next)
{ {
if(card->cfuncs->preserve)
(*card->cfuncs->preserve) (card); (*card->cfuncs->preserve) (card);
for (screen = card->screenList; screen; screen = screen->next) for (screen = card->screenList; screen; screen = screen->next)
if (screen->mynum == card->selected && screen->pScreen) if (screen->mynum == card->selected && screen->pScreen)
@ -843,7 +846,10 @@ KdCreateScreenResources (ScreenPtr pScreen)
Bool ret; Bool ret;
pScreen->CreateScreenResources = pScreenPriv->CreateScreenResources; pScreen->CreateScreenResources = pScreenPriv->CreateScreenResources;
if(pScreen->CreateScreenResources)
ret = (*pScreen->CreateScreenResources) (pScreen); ret = (*pScreen->CreateScreenResources) (pScreen);
else
ret= -1;
pScreenPriv->CreateScreenResources = pScreen->CreateScreenResources; pScreenPriv->CreateScreenResources = pScreen->CreateScreenResources;
pScreen->CreateScreenResources = KdCreateScreenResources; pScreen->CreateScreenResources = KdCreateScreenResources;
if (ret && card->cfuncs->createRes) if (ret && card->cfuncs->createRes)
@ -861,7 +867,10 @@ KdCloseScreen (int index, ScreenPtr pScreen)
pScreenPriv->closed = TRUE; pScreenPriv->closed = TRUE;
pScreen->CloseScreen = pScreenPriv->CloseScreen; pScreen->CloseScreen = pScreenPriv->CloseScreen;
if(pScreen->CloseScreen)
ret = (*pScreen->CloseScreen) (index, pScreen); ret = (*pScreen->CloseScreen) (index, pScreen);
else
ret = TRUE;
if (screen->off_screen_base < screen->memory_size) if (screen->off_screen_base < screen->memory_size)
KdOffscreenFini (pScreen); KdOffscreenFini (pScreen);
@ -877,16 +886,17 @@ KdCloseScreen (int index, ScreenPtr pScreen)
*/ */
if (screen == card->screenList) if (screen == card->screenList)
{ {
if (kdEnabled) if (kdEnabled && card->cfuncs->restore)
(*card->cfuncs->restore) (card); (*card->cfuncs->restore) (card);
} }
if (!pScreenPriv->screen->dumb) if (!pScreenPriv->screen->dumb && card->cfuncs->finiAccel)
(*card->cfuncs->finiAccel) (pScreen); (*card->cfuncs->finiAccel) (pScreen);
if (!pScreenPriv->screen->softCursor) if (!pScreenPriv->screen->softCursor && card->cfuncs->finiCursor)
(*card->cfuncs->finiCursor) (pScreen); (*card->cfuncs->finiCursor) (pScreen);
if(card->cfuncs->scrfini)
(*card->cfuncs->scrfini) (screen); (*card->cfuncs->scrfini) (screen);
/* /*
@ -895,6 +905,7 @@ KdCloseScreen (int index, ScreenPtr pScreen)
*/ */
if (screen == card->screenList) if (screen == card->screenList)
{ {
if(card->cfuncs->cardfini)
(*card->cfuncs->cardfini) (card); (*card->cfuncs->cardfini) (card);
/* /*
* Clean up OS when last card is closed * Clean up OS when last card is closed
@ -904,6 +915,7 @@ KdCloseScreen (int index, ScreenPtr pScreen)
if (kdEnabled) if (kdEnabled)
{ {
kdEnabled = FALSE; kdEnabled = FALSE;
if(kdOsFuncs->Disable)
(*kdOsFuncs->Disable) (); (*kdOsFuncs->Disable) ();
} }
} }
@ -1230,19 +1242,22 @@ KdScreenInit(int index, ScreenPtr pScreen, int argc, char **argv)
if (!kdEnabled) if (!kdEnabled)
{ {
kdEnabled = TRUE; kdEnabled = TRUE;
if(kdOsFuncs->Enable)
(*kdOsFuncs->Enable) (); (*kdOsFuncs->Enable) ();
} }
if (screen->mynum == card->selected) if (screen->mynum == card->selected)
{ {
if(card->cfuncs->preserve)
(*card->cfuncs->preserve) (card); (*card->cfuncs->preserve) (card);
if(card->cfuncs->enable)
if (!(*card->cfuncs->enable) (pScreen)) if (!(*card->cfuncs->enable) (pScreen))
return FALSE; return FALSE;
pScreenPriv->enabled = TRUE; pScreenPriv->enabled = TRUE;
if (!screen->softCursor) if (!screen->softCursor && card->cfuncs->enableCursor)
(*card->cfuncs->enableCursor) (pScreen); (*card->cfuncs->enableCursor) (pScreen);
KdEnableColormap (pScreen); KdEnableColormap (pScreen);
if (!screen->dumb) if (!screen->dumb && card->cfuncs->enableAccel)
(*card->cfuncs->enableAccel) (pScreen); (*card->cfuncs->enableAccel) (pScreen);
} }
@ -1406,7 +1421,10 @@ KdInitOutput (ScreenInfo *pScreenInfo,
*/ */
for (card = kdCardInfo; card; card = card->next) for (card = kdCardInfo; card; card = card->next)
{ {
if ((*card->cfuncs->cardinit) (card)) int ret=1;
if(card->cfuncs->cardinit)
ret=(*card->cfuncs->cardinit) (card);
if (ret)
{ {
for (screen = card->screenList; screen; screen = screen->next) for (screen = card->screenList; screen; screen = screen->next)
KdInitScreen (pScreenInfo, screen, argc, argv); KdInitScreen (pScreenInfo, screen, argc, argv);