diff options
author | marha <marha@users.sourceforge.net> | 2011-11-25 08:32:21 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2011-11-25 08:32:21 +0100 |
commit | 849d328b25c2f3c87d539e1fe7af38e7580a0409 (patch) | |
tree | 349c425a87ddb3aaa1d7832d5a8e68252fc73ddb /xorg-server/glx/glxdri2.c | |
parent | a8a12d4c8be177f63cae7dc96c2b52f09e228a76 (diff) | |
parent | a0b4a1330be6a36ad095222d2ea83927cd33514d (diff) | |
download | vcxsrv-849d328b25c2f3c87d539e1fe7af38e7580a0409.tar.gz vcxsrv-849d328b25c2f3c87d539e1fe7af38e7580a0409.tar.bz2 vcxsrv-849d328b25c2f3c87d539e1fe7af38e7580a0409.zip |
Merge remote-tracking branch 'origin/released'
Conflicts:
xorg-server/glx/glxdriswrast.c
xorg-server/glx/single2.c
xorg-server/hw/xwin/winconfig.c
xorg-server/os/osinit.c
xorg-server/os/xdmcp.c
xorg-server/xkb/xkbInit.c
Diffstat (limited to 'xorg-server/glx/glxdri2.c')
-rw-r--r-- | xorg-server/glx/glxdri2.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/xorg-server/glx/glxdri2.c b/xorg-server/glx/glxdri2.c index e8722585b..8187a3edd 100644 --- a/xorg-server/glx/glxdri2.c +++ b/xorg-server/glx/glxdri2.c @@ -73,6 +73,7 @@ struct __GLXDRIscreen { const __DRIcopySubBufferExtension *copySubBuffer; const __DRIswapControlExtension *swapControl; const __DRItexBufferExtension *texBuffer; + const __DRIconfig **driConfigs; unsigned char glx_enable_bits[__GLX_EXT_BYTES]; }; @@ -363,6 +364,8 @@ static __GLXtextureFromPixmap __glXDRItextureFromPixmap = { static void __glXDRIscreenDestroy(__GLXscreen *baseScreen) { + int i; + __GLXDRIscreen *screen = (__GLXDRIscreen *) baseScreen; (*screen->core->destroyScreen)(screen->driScreen); @@ -371,6 +374,12 @@ __glXDRIscreenDestroy(__GLXscreen *baseScreen) __glXScreenDestroy(baseScreen); + if (screen->driConfigs) { + for (i = 0; screen->driConfigs[i] != NULL; i++) + free((__DRIconfig **)screen->driConfigs[i]); + free(screen->driConfigs); + } + free(screen); } @@ -688,7 +697,6 @@ __glXDRIscreenProbe(ScreenPtr pScreen) __GLXDRIscreen *screen; size_t buffer_size; ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; - const __DRIconfig **driConfigs; screen = calloc(1, sizeof *screen); if (screen == NULL) @@ -720,7 +728,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen) (*screen->dri2->createNewScreen)(pScreen->myNum, screen->fd, loader_extensions, - &driConfigs, + &screen->driConfigs, screen); if (screen->driScreen == NULL) { @@ -731,7 +739,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen) initializeExtensions(screen); - screen->base.fbconfigs = glxConvertConfigs(screen->core, driConfigs, + screen->base.fbconfigs = glxConvertConfigs(screen->core, screen->driConfigs, GLX_WINDOW_BIT | GLX_PIXMAP_BIT | GLX_PBUFFER_BIT); |