diff options
author | Julien Cristau <jcristau@debian.org> | 2016-03-07 23:20:28 +0100 |
---|---|---|
committer | Adam Jackson <ajax@redhat.com> | 2016-03-08 10:19:46 -0500 |
commit | 59b9c3d5e4bf05aeaaac2ee4ea12c301a67aae2c (patch) | |
tree | 530a20a6d8c6911867a565fc96c5082007165338 /glx | |
parent | ac97fb2b804809c39b12fe0032d96fb076657258 (diff) |
glx: don't call pGlxDraw->destroy() if AddResource fails
AddResource will have called DrawableGone, which takes care of the
destruction.
Reviewed-by: RĂ©mi Cardona <remi@gentoo.org>
Signed-off-by: Julien Cristau <jcristau@debian.org>
Diffstat (limited to 'glx')
-rw-r--r-- | glx/glxcmds.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/glx/glxcmds.c b/glx/glxcmds.c index 0416dac09..6eb3541d0 100644 --- a/glx/glxcmds.c +++ b/glx/glxcmds.c @@ -544,7 +544,6 @@ __glXGetDrawable(__GLXcontext * glxc, GLXDrawable drawId, ClientPtr client, /* since we are creating the drawablePrivate, drawId should be new */ if (!AddResource(drawId, __glXDrawableRes, pGlxDraw)) { - pGlxDraw->destroy(pGlxDraw); *error = BadAlloc; return NULL; } @@ -1239,20 +1238,16 @@ DoCreateGLXDrawable(ClientPtr client, __GLXscreen * pGlxScreen, if (pGlxDraw == NULL) return BadAlloc; - if (!AddResource(glxDrawableId, __glXDrawableRes, pGlxDraw)) { - pGlxDraw->destroy(pGlxDraw); + if (!AddResource(glxDrawableId, __glXDrawableRes, pGlxDraw)) return BadAlloc; - } /* * Windows aren't refcounted, so track both the X and the GLX window * so we get called regardless of destruction order. */ if (drawableId != glxDrawableId && type == GLX_DRAWABLE_WINDOW && - !AddResource(pDraw->id, __glXDrawableRes, pGlxDraw)) { - pGlxDraw->destroy(pGlxDraw); + !AddResource(pDraw->id, __glXDrawableRes, pGlxDraw)) return BadAlloc; - } return Success; } |