From 1e19fe323f88239b5484414ad74b1e177a4adeb7 Mon Sep 17 00:00:00 2001 From: William Waghorn Date: Wed, 25 Oct 2000 21:27:16 +0000 Subject: [PATCH] xf86vmode_setdisplaymode() wasn't properly saving the 'private' field of the XF86VidModeModeLine structure. --- dlls/ddraw/ddraw/x11.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/dlls/ddraw/ddraw/x11.c b/dlls/ddraw/ddraw/x11.c index 5ab465ddd64..cd54c0b9d73 100644 --- a/dlls/ddraw/ddraw/x11.c +++ b/dlls/ddraw/ddraw/x11.c @@ -170,7 +170,13 @@ xf86vmode_setdisplaymode(width,height) { orig_mode->vsyncend = mod_tmp.vsyncend; orig_mode->vtotal = mod_tmp.vtotal; orig_mode->flags = mod_tmp.flags; - orig_mode->private = mod_tmp.private; + /* copy private data to our orig_mode structure */ + orig_mode->privsize = mod_tmp.privsize; + if (orig_mode->privsize) + { + orig_mode->private = malloc(mod_tmp.privsize); + memcpy(orig_mode->private, mod_tmp.private, mod_tmp.privsize); + } TSXF86VidModeGetAllModeLines(display,DefaultScreen(display),&mode_count,&all_modes); for (i=0;iprivsize) - TSXFree(orig_mode->private); + free(orig_mode->private); + free(orig_mode); orig_mode = NULL; }