<div dir="ltr">Hmm, I don't trust myself with gotos yet because I still don't have much experience writing them.  So maybe I'll use them for a different patch later.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Apr 1, 2015 at 11:56 AM, Ilia Mirkin <span dir="ltr"><<a href="mailto:imirkin@alum.mit.edu" target="_blank">imirkin@alum.mit.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Reviewed-by: Ilia Mirkin <<a href="mailto:imirkin@alum.mit.edu">imirkin@alum.mit.edu</a>><br>
<br>
An alternative, btw, is to do a goto to the existing unlock. This<br>
would have the advantage of keeping a single unlock, and a single<br>
return path in the function. Your call, you get the R-b either way.<br>
<br>
  -ilia<br>
<div><div class="h5"><br>
On Wed, Apr 1, 2015 at 2:23 PM, Laura Ekstrand <<a href="mailto:laura@jlekstrand.net">laura@jlekstrand.net</a>> wrote:<br>
> Ilia Mirkin found that I had forgotten to free the mutex in the error case.<br>
> ---<br>
>  src/mesa/main/bufferobj.c | 1 +<br>
>  1 file changed, 1 insertion(+)<br>
><br>
> diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c<br>
> index b67e1c4..c7ef90b 100644<br>
> --- a/src/mesa/main/bufferobj.c<br>
> +++ b/src/mesa/main/bufferobj.c<br>
> @@ -1353,6 +1353,7 @@ create_buffers(GLsizei n, GLuint *buffers, bool dsa)<br>
>           buf = ctx->Driver.NewBufferObject(ctx, buffers[i]);<br>
>           if (!buf) {<br>
>              _mesa_error(ctx, GL_OUT_OF_MEMORY, "%s", func);<br>
> +            mtx_unlock(&ctx->Shared->Mutex);<br>
>              return;<br>
>           }<br>
>        }<br>
> --<br>
> 2.1.0<br>
><br>
</div></div>> _______________________________________________<br>
> mesa-dev mailing list<br>
> <a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
> <a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev" target="_blank">http://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</blockquote></div><br></div>