int xf86removeScreenDisplay(XF86ConfScreenPtr scrn, XF86ConfDisplayPtr display) { XF86ConfDisplayPtr dsp, prev; if (scrn == NULL || display == NULL || scrn->scrn_display_lst == NULL) return (False); for (dsp = prev = scrn->scrn_display_lst; dsp != NULL; prev = dsp, dsp = (XF86ConfDisplayPtr)(dsp->list.next)) if (dsp == display) { if (prev == dsp) scrn->scrn_display_lst = (XF86ConfDisplayPtr)(dsp->list.next); else prev->list.next = dsp->list.next; xf86optionListFree(display->disp_option_lst); XtFree((XtPointer)display->disp_visual); xf86freeModeList(display->disp_mode_lst); XtFree((XtPointer)display); return (True); } return (False); }
void xf86freeDisplayList(XF86ConfDisplayPtr ptr) { XF86ConfDisplayPtr prev; while (ptr) { xf86freeModeList(ptr->disp_mode_lst); xf86optionListFree(ptr->disp_option_lst); prev = ptr; ptr = ptr->list.next; free(prev); } }