From 1be0fd8c86cac0775fd4451eb332effc70ccdbe5 Mon Sep 17 00:00:00 2001 From: Paul Berry Date: Thu, 5 Jan 2012 13:06:36 -0800 Subject: [PATCH] mesa: Fix extra memset in store_tfeedback_info() Commit 9d36c96d6ec9f2c05c8e0b9ef18c5462cddee8c1 (mesa: Fix glGetTransformFeedbackVarying()) accidentally added an extra memset() call to the store_tfeedback_info() function, causing prog->LinkedTransformFeedback.NumBuffers to be erased. This patch removes the extra memset and rearranges the other operations in store_tfeedback_info() to be in the correct order. Fixes piglit tests "EXT_transform_feedback/api-errors *unbound*" Reviewed-by: Eric Anholt --- src/glsl/linker.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp index 3dd088324ab..128bbd54263 100644 --- a/src/glsl/linker.cpp +++ b/src/glsl/linker.cpp @@ -1884,16 +1884,15 @@ store_tfeedback_info(struct gl_context *ctx, struct gl_shader_program *prog, unsigned total_tfeedback_components = 0; bool separate_attribs_mode = prog->TransformFeedback.BufferMode == GL_SEPARATE_ATTRIBS; - memset(&prog->LinkedTransformFeedback, 0, - sizeof(prog->LinkedTransformFeedback)); - prog->LinkedTransformFeedback.NumBuffers = - separate_attribs_mode ? num_tfeedback_decls : 1; ralloc_free(prog->LinkedTransformFeedback.Varyings); memset(&prog->LinkedTransformFeedback, 0, sizeof(prog->LinkedTransformFeedback)); + prog->LinkedTransformFeedback.NumBuffers = + separate_attribs_mode ? num_tfeedback_decls : 1; + prog->LinkedTransformFeedback.Varyings = rzalloc_array(prog->LinkedTransformFeedback.Varyings, struct gl_transform_feedback_varying_info, -- 2.30.2