summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gallium/state_trackers/wgl/shared/stw_context.c26
1 files changed, 11 insertions, 15 deletions
diff --git a/src/gallium/state_trackers/wgl/shared/stw_context.c b/src/gallium/state_trackers/wgl/shared/stw_context.c
index 1377fb1ec8..708acad193 100644
--- a/src/gallium/state_trackers/wgl/shared/stw_context.c
+++ b/src/gallium/state_trackers/wgl/shared/stw_context.c
@@ -80,7 +80,7 @@ stw_create_layer_context(
struct stw_context *ctx = NULL;
GLvisual *visual = NULL;
struct pipe_context *pipe = NULL;
- UINT_PTR hglrc;
+ UINT_PTR hglrc = 0;
if(!stw_dev)
return 0;
@@ -140,25 +140,21 @@ stw_create_layer_context(
UINT_PTR i;
for (i = 0; i < STW_CONTEXT_MAX; i++) {
- if (stw_dev->ctx_array[i].ctx == NULL)
+ if (stw_dev->ctx_array[i].ctx == NULL) {
+ /* success:
+ */
+ stw_dev->ctx_array[i].ctx = ctx;
+ hglrc = i + 1;
break;
+ }
}
-
- /* No slot available, fail:
- */
- if (i == STW_CONTEXT_MAX)
- goto done;
-
- stw_dev->ctx_array[i].ctx = ctx;
-
- /* success:
- */
- hglrc = i + 1;
}
-done:
pipe_mutex_unlock( stw_dev->mutex );
- return hglrc;
+ /* Success?
+ */
+ if (hglrc != 0)
+ return hglrc;
fail:
if (visual)