From 29b3b88dc744f4919c6709747ddb7baac47486c5 Mon Sep 17 00:00:00 2001 From: Pierre Willenbrock Date: Fri, 30 Jan 2009 21:16:48 -0800 Subject: [PATCH] Prevent double unref of glxdrawables Found by valgrind. Bug #18917. --- glx/glxcmds.c | 4 ++++ hw/xfree86/modes/xf86Crtc.c | 3 --- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/glx/glxcmds.c b/glx/glxcmds.c index af52672f1..33954ee64 100644 --- a/glx/glxcmds.c +++ b/glx/glxcmds.c @@ -146,6 +146,8 @@ __glXContextDestroy(__GLXcontext *context) __glXUnrefDrawable(context->drawPriv); if (context->readPriv) __glXUnrefDrawable(context->readPriv); + context->drawPriv = NULL; + context->readPriv = NULL; } __glXFlushContextCache(); } @@ -621,6 +623,8 @@ DoMakeCurrent(__GLXclientState *cl, __glXUnrefDrawable(prevglxc->drawPriv); if (prevglxc->readPriv) __glXUnrefDrawable(prevglxc->readPriv); + prevglxc->drawPriv = NULL; + prevglxc->readPriv = NULL; } } diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c index 30308ade4..40352b4fd 100644 --- a/hw/xfree86/modes/xf86Crtc.c +++ b/hw/xfree86/modes/xf86Crtc.c @@ -3159,9 +3159,6 @@ xf86_crtc_supports_gamma(ScrnInfoPtr pScrn) xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); xf86CrtcPtr crtc; - if (!xf86_config) - return FALSE; - if (xf86_config->num_crtc == 0) return FALSE; crtc = xf86_config->crtc[0];