i915g: Check for geometry shader earlier in i915_set_constant_buffer.
authorVinson Lee <vlee@freedesktop.org>
Thu, 24 May 2012 05:36:47 +0000 (22:36 -0700)
committerVinson Lee <vlee@freedesktop.org>
Fri, 25 May 2012 01:50:07 +0000 (18:50 -0700)
Fix resource leak defect reported by Coverity.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
src/gallium/drivers/i915/i915_state.c

index bd9e8bac0aeb8278c612174a355fe28943ecddaf..1ff53884ada3bdb1eaf6dc0b2e44d405cc5a5762 100644 (file)
@@ -672,16 +672,16 @@ static void i915_set_constant_buffer(struct pipe_context *pipe,
    unsigned new_num = 0;
    boolean diff = TRUE;
 
+   /* XXX don't support geom shaders now */
+   if (shader == PIPE_SHADER_GEOMETRY)
+      return;
+
    if (cb && cb->user_buffer) {
       buf = i915_user_buffer_create(pipe->screen, cb->user_buffer,
                                     cb->buffer_size,
                                     PIPE_BIND_CONSTANT_BUFFER);
    }
 
-   /* XXX don't support geom shaders now */
-   if (shader == PIPE_SHADER_GEOMETRY)
-      return;
-
    /* if we have a new buffer compare it with the old one */
    if (buf) {
       struct i915_buffer *ibuf = i915_buffer(buf);