diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c index 312597c7e..09d27ecb7 100644 --- a/hw/xfree86/common/xf86Config.c +++ b/hw/xfree86/common/xf86Config.c @@ -1763,24 +1763,21 @@ configScreen(confScreenPtr screenp, XF86ConfScreenPtr conf_screen, int scrnum, screenp->displays = xnfallocarray(count, sizeof(DispPtr)); screenp->numdisplays = count; - /* Fill in the default Virtual size, if any */ - if (conf_screen->scrn_virtualX && conf_screen->scrn_virtualY) { - for (count = 0, dispptr = conf_screen->scrn_display_lst; - dispptr; - dispptr = (XF86ConfDisplayPtr) dispptr->list.next, count++) { - screenp->displays[count] = xnfcalloc(1, sizeof(DispRec)); + for (count = 0, dispptr = conf_screen->scrn_display_lst; + dispptr; + dispptr = (XF86ConfDisplayPtr) dispptr->list.next, count++) { + + /* Allocate individual Display records */ + screenp->displays[count] = xnfcalloc(1, sizeof(DispRec)); + + /* Fill in the default Virtual size, if any */ + if (conf_screen->scrn_virtualX && conf_screen->scrn_virtualY) { screenp->displays[count]->virtualX = conf_screen->scrn_virtualX; screenp->displays[count]->virtualY = conf_screen->scrn_virtualY; } - } - /* Now do the per-Display Virtual sizes */ - count = 0; - dispptr = conf_screen->scrn_display_lst; - while (dispptr) { + /* Now do the per-Display Virtual sizes */ configDisplay(screenp->displays[count], dispptr); - count++; - dispptr = (XF86ConfDisplayPtr) dispptr->list.next; } /*