On Wed, Aug 20, 2008 at 11:34 PM, Brian Paul
<[EMAIL PROTECTED]> wrote:
> Ralovich, Kristóf wrote:
>>
>> This patch is at
>>
>> http://cgit.freedesktop.org/~tade/mesa/diff/?h=xcb-integration&id=0e78c256e9fd9a2bab5acb4b639c5240357129f7
>> . I am sure this #include is not elegant, but it works.
>>
>> Kristof
>>
>>> From 0e78c256e9fd9a2bab5acb4b639c5240357129f7 Mon Sep 17 00:00:00 2001
>>
>> From: =?utf-8?q?Ralovich,=20Krist=C3=B3f?= <[EMAIL PROTECTED]>
>> Date: Tue, 19 Aug 2008 13:09:43 +0200
>> Subject: [PATCH] Plug a leak.
>>
>> ---
>> src/glx/x11/dri_glx.c | 12 +++++++++---
>> 1 files changed, 9 insertions(+), 3 deletions(-)
>>
>> diff --git a/src/glx/x11/dri_glx.c b/src/glx/x11/dri_glx.c
>> index 82653f1..7f551b2 100644
>> --- a/src/glx/x11/dri_glx.c
>> +++ b/src/glx/x11/dri_glx.c
>> @@ -47,6 +47,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
>> #include <sys/mman.h>
>> #include "xf86drm.h"
>> #include "dri_common.h"
>> +#include "../drivers/dri/common/dri_util.h"
>>
>> typedef struct __GLXDRIdisplayPrivateRec __GLXDRIdisplayPrivate;
>> typedef struct __GLXDRIcontextPrivateRec __GLXDRIcontextPrivate;
>> @@ -572,9 +573,14 @@ static __GLXDRIdrawable
>> *driCreateDrawable(__GLXscreenConfigs *psc,
>> static void driDestroyScreen(__GLXscreenConfigs *psc)
>> {
>> /* Free the direct rendering per screen data */
>> - if (psc->__driScreen)
>> - (*psc->core->destroyScreen)(psc->__driScreen);
>> - psc->__driScreen = NULL;
>> + if (psc->__driScreen) {
>> + if (psc->__driScreen->pDevPriv) {
>> + Xfree(psc->__driScreen->pDevPriv);
>> + psc->__driScreen->pDevPriv = NULL;
>> + }
>> + (*psc->core->destroyScreen)(psc->__driScreen);
>> + psc->__driScreen = NULL;
>> + }
>> if (psc->driver)
>> dlclose(psc->driver);
>> }
>> --
>> 1.5.6.3
>
> The glx code shouldn't reach down into the dri util code like that so I'm
> going to have to reject this patch. There's probably another solution.
>
> -Brian
>
>
Brian you were right, I think I have found a better solution.
Kristof
From db0cf02bd891ec7939a1c862a6120be5bb3212df Mon Sep 17 00:00:00 2001
From: =?utf-8?q?Ralovich,=20Krist=C3=B3f?= <[EMAIL PROTECTED]>
Date: Fri, 22 Aug 2008 15:32:56 +0200
Subject: [PATCH] dri: Free __DRIscreen->pDevPriv in driDestroyScreen.
---
src/mesa/drivers/dri/common/dri_util.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/src/mesa/drivers/dri/common/dri_util.c
b/src/mesa/drivers/dri/common/dri_util.c
index 9655741..aedea7e 100644
--- a/src/mesa/drivers/dri/common/dri_util.c
+++ b/src/mesa/drivers/dri/common/dri_util.c
@@ -781,6 +781,12 @@ static void driDestroyScreen(__DRIscreen *psp)
(void)drmCloseOnce(psp->fd);
}
+ if (psp->pDevPriv)
+ {
+ _mesa_free(psp->pDevPriv);
+ psp->pDevPriv = NULL;
+ psp->devPrivSize = 0;
+ }
_mesa_free(psp);
}
}
--
1.5.6.3
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Mesa3d-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev