I don't know, but I don't think so since none of the lines changed in
that commit are actually reached before the crash (at least for that
drawable). Furthermore, it appears to fix a problem in more recent API.
The only part of the patch that applies on version 2:1.7.4-2 is the
extraction of the ending of the DRI2DestroyDrawable into
DRI2FreeDrawable, which is still equivalent.

I think the problem is here (#4 in backtrace, __glXDRIdrawableDestroy in
glx/glxdri2.c):

    /* If the X window was destroyed, the dri DestroyWindow hook will
     * aready have taken care of this, so only call if pDraw isn't NULL. */
    if (drawable->pDraw != NULL)
        DRI2DestroyDrawable(drawable->pDraw);

It assumes that drawable->pDraw has been set to NULL if it is already
freed. However, wherever it is freed this pointer is not set to NULL
afterwards (at least that's what I suspect). I don't know where I can
find the code of the "dri DestroyWindow hook", though.

/Patrik

On Sat, 2010-01-30 at 18:45 +0100, Brice Goglin wrote:
> Random guess: Could be related to
> http://cgit.freedesktop.org/xorg/xserver/commit/?id=711e26466ae04ae93ff4c48d377d83d68a6320e9
> ?
> 
> Brice
> 

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to