forked from pool/xorg-x11-server
28 lines
869 B
Diff
28 lines
869 B
Diff
|
commit f6401f944d327cc5d9a7ee0bbdf4f7fc8eaa31e8
|
||
|
Author: Matthias Hopf <mhopf@suse.de>
|
||
|
Date: Fri Nov 23 16:12:49 2007 +0100
|
||
|
|
||
|
Don't segfault if referring to a relative output where no modes survived.
|
||
|
|
||
|
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
|
||
|
index 5a1ed8c..8595d96 100644
|
||
|
--- a/hw/xfree86/modes/xf86Crtc.c
|
||
|
+++ b/hw/xfree86/modes/xf86Crtc.c
|
||
|
@@ -1079,6 +1079,16 @@ xf86InitialOutputPositions (ScrnInfoPtr scrn, DisplayModePtr *modes)
|
||
|
any_set = TRUE;
|
||
|
continue;
|
||
|
}
|
||
|
+ if (!modes[or])
|
||
|
+ {
|
||
|
+ xf86DrvMsg (scrn->scrnIndex, X_ERROR,
|
||
|
+ "Cannot position output %s relative to output %s without modes\n",
|
||
|
+ output->name, relative_name);
|
||
|
+ output->initial_x = 0;
|
||
|
+ output->initial_y = 0;
|
||
|
+ any_set = TRUE;
|
||
|
+ continue;
|
||
|
+ }
|
||
|
if (relative->initial_x == POSITION_UNSET)
|
||
|
{
|
||
|
keep_going = TRUE;
|