Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 159985 Details for
Bug 243454
firefox action "close tab" caused Xorg signal 11 Server abort
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
second upstream patch
bugs-freedesktop-org-bug-7205-stray-pointers-patch.diff (text/plain), 3.41 KB, created by
Matěj Cepl
on 2007-07-25 22:01:37 UTC
(
hide
)
Description:
second upstream patch
Filename:
MIME Type:
Creator:
Matěj Cepl
Created:
2007-07-25 22:01:37 UTC
Size:
3.41 KB
patch
obsolete
>--- GL/glx/glxext.c.orig 2007-01-23 16:00:19.000000000 +0100 >+++ GL/glx/glxext.c.orig 2007-01-23 16:00:23.000000000 +0100 >@@ -59,7 +59,7 @@ xGLXSingleReply __glXReply; > ** A set of state for each client. The 0th one is unused because client > ** indices start at 1, not 0. > */ >-static __GLXclientState *__glXClients[MAXCLIENTS + 1]; >+__GLXclientState *__glXClients[MAXCLIENTS + 1]; > > /* > ** Forward declarations. >@@ -95,12 +95,74 @@ static XMesaVisual find_mesa_visual(__GL > > > static void >+__glXMesaDrawableDestoryCB(pointer baseCtx, XID id, pointer basePriv) >+{ >+ __GLXMESAcontext *context = (__GLXMESAcontext *) baseCtx; >+ __GLXdrawable *glxPriv = (__GLXdrawable *) basePriv; >+ void *buffer =((__GLXMESAdrawable *) glxPriv) ->xm_buf; >+ __GLXMESAdrawable *drawPriv, *readPriv; >+ >+ if (context->base.drawPriv == glxPriv || >+ context->base.readPriv == glxPriv) { >+ ErrorF ("Cleaning up stray priv pointers to %p in context %p\n", >+ glxPriv, context); >+ if (context->base.drawPriv == glxPriv) >+ context->base.drawPriv = NULL; >+ if (context->base.readPriv == glxPriv) >+ context->base.readPriv = NULL; >+ } >+ drawPriv = (__GLXMESAdrawable *) context->base.drawPriv; >+ readPriv = (__GLXMESAdrawable *) context->base.readPriv; >+ if ((drawPriv && drawPriv->xm_buf == buffer) || >+ (readPriv && readPriv->xm_buf == buffer)) { >+ /* This should not happen, but the alternative is a sure server crash */ >+ ErrorF ("ERROR: Draw priv in context %p is not freed yet, " >+ "but has stray buffer pointer %p\n", context, buffer); >+ if (drawPriv && drawPriv->xm_buf == buffer) >+ drawPriv->xm_buf = NULL; >+ if (readPriv && readPriv->xm_buf == buffer) >+ readPriv->xm_buf = NULL; >+ } >+ if (context->xmesa && >+ (context->xmesa->mesa.DrawBuffer == buffer || >+ context->xmesa->mesa.ReadBuffer == buffer || >+ context->xmesa->mesa.WinSysDrawBuffer == buffer || >+ context->xmesa->mesa.WinSysReadBuffer == buffer || >+ context->xmesa->xm_buffer == buffer)) { >+ ErrorF ("Cleaning up stray xmesa pointers to buffer %p in context %p\n", >+ buffer, context); >+ if (context->xmesa->mesa.DrawBuffer == buffer) >+ context->xmesa->mesa.DrawBuffer = NULL; >+ if (context->xmesa->mesa.ReadBuffer == buffer) >+ context->xmesa->mesa.ReadBuffer = NULL; >+ if (context->xmesa->mesa.WinSysDrawBuffer == buffer) >+ context->xmesa->mesa.WinSysDrawBuffer = NULL; >+ if (context->xmesa->mesa.WinSysReadBuffer == buffer) >+ context->xmesa->mesa.WinSysReadBuffer = NULL; >+ if (context->xmesa->xm_buffer == buffer) >+ context->xmesa->xm_buffer = NULL; >+ } >+} >+ >+extern __GLXclientState *__glXClients[]; >+static void > __glXMesaDrawableDestroy(__GLXdrawable *base) > { > __GLXMESAdrawable *glxPriv = (__GLXMESAdrawable *) base; > >- if (glxPriv->xm_buf != NULL) >+ if (glxPriv->xm_buf != NULL) { >+ /* There may still be stray pointers in contexts that are no longer >+ * visible to Mesa. Scan all contexts for this client and nuke those >+ * pointers */ >+ int clientId = CLIENT_ID(base->drawId); >+ if (clientId >=0 && clientId < MAXCLIENTS+1 && __glXClients[clientId]) { >+ ClientPtr client = __glXClients[clientId]->client; >+ if (client) >+ FindClientResourcesByType(client, __glXContextRes, >+ __glXMesaDrawableDestoryCB, glxPriv); >+ } > XMesaDestroyBuffer(glxPriv->xm_buf); >+ } > xfree(glxPriv); > } >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 243454
:
156606
|
157153
|
159984
| 159985