<div dir="ltr">Thanks!  I don't have push permissions actually, so all my stuff is going through the mailing list at the moment.<div><br></div><div>-John Sheu</div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Apr 14, 2016 at 12:09 AM Alejandro Piñeiro <<a href="mailto:apinheiro@igalia.com">apinheiro@igalia.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">For next time, on the cases were minor changes are suggested, but a RB<br>
is granted in any case, you don't need to send the patch again to the<br>
list, you can made the changes locally and push directly without<br>
re-submitting to the list.<br>
<br>
BTW, talking about pushing, do you have push permissions? I can do the<br>
push of this and the other two patches if needed.<br>
<br>
BR<br>
<br>
On 13/04/16 22:57, John Sheu wrote:<br>
> The returned XVisualInfo from glXChooseVisual/glXGetVisualFromFBConfig<br>
> is being cached in XMesaVisual.vishandle (and unconditionally<br>
> overwritten on subsequent calls).  However, these entry points are<br>
> specified to return XVisualInfo instances to be owned by the caller and<br>
> freed with XFree(), so the return values should not be retained.<br>
><br>
> With this change, XMesaVisual.vishandle is essentially unused and will<br>
> be removed in a subsequent change.<br>
> ---<br>
>  src/mesa/drivers/x11/fakeglx.c | 26 ++++++++------------------<br>
>  1 file changed, 8 insertions(+), 18 deletions(-)<br>
><br>
> diff --git a/src/mesa/drivers/x11/fakeglx.c b/src/mesa/drivers/x11/fakeglx.c<br>
> index 2f4d9669..d62d5abd 100644<br>
> --- a/src/mesa/drivers/x11/fakeglx.c<br>
> +++ b/src/mesa/drivers/x11/fakeglx.c<br>
> @@ -1241,16 +1241,11 @@ Fake_glXChooseVisual( Display *dpy, int screen, int *list )<br>
><br>
>     xmvis = choose_visual(dpy, screen, list, GL_FALSE);<br>
>     if (xmvis) {<br>
> -#if 0<br>
> -      return xmvis->vishandle;<br>
> -#else<br>
> -      /* create a new vishandle - the cached one may be stale */<br>
> -      xmvis->vishandle = malloc(sizeof(XVisualInfo));<br>
> -      if (xmvis->vishandle) {<br>
> -         memcpy(xmvis->vishandle, xmvis->visinfo, sizeof(XVisualInfo));<br>
> +      XVisualInfo* visinfo = malloc(sizeof(XVisualInfo));<br>
> +      if (visinfo) {<br>
> +         memcpy(visinfo, xmvis->visinfo, sizeof(XVisualInfo));<br>
>        }<br>
> -      return xmvis->vishandle;<br>
> -#endif<br>
> +      return visinfo;<br>
>     }<br>
>     else<br>
>        return NULL;<br>
> @@ -1974,16 +1969,11 @@ Fake_glXGetVisualFromFBConfig( Display *dpy, GLXFBConfig config )<br>
>  {<br>
>     if (dpy && config) {<br>
>        XMesaVisual xmvis = (XMesaVisual) config;<br>
> -#if 0<br>
> -      return xmvis->vishandle;<br>
> -#else<br>
> -      /* create a new vishandle - the cached one may be stale */<br>
> -      xmvis->vishandle = malloc(sizeof(XVisualInfo));<br>
> -      if (xmvis->vishandle) {<br>
> -         memcpy(xmvis->vishandle, xmvis->visinfo, sizeof(XVisualInfo));<br>
> +      XVisualInfo* visinfo = malloc(sizeof(XVisualInfo));<br>
> +      if (visinfo) {<br>
> +         memcpy(visinfo, xmvis->visinfo, sizeof(XVisualInfo));<br>
>        }<br>
> -      return xmvis->vishandle;<br>
> -#endif<br>
> +      return visinfo;<br>
>     }<br>
>     else {<br>
>        return NULL;<br>
<br>
</blockquote></div>