diff options
author | Paul Berry <[email protected]> | 2012-01-03 13:59:13 -0800 |
---|---|---|
committer | Paul Berry <[email protected]> | 2012-01-05 13:27:12 -0800 |
commit | 4357f8b4dcaaef4843d4b34923383a2b045638b1 (patch) | |
tree | 87f8627171732a1af8b499e67d859f55ce73f4c8 | |
parent | 456279bb33e09679de61d560aeafa74bb902fe43 (diff) |
mesa: Avoid segfault when getting an unbound transform feedback buffer name.
Previously we were using
gl_transform_feedback_object::Buffers[i]->Name to service an indexed
get request for GL_TRANSFORM_FEEDBACK_BUFFER_BINDING. However, if no
buffer has been bound, gl_transform_feedback_object::Buffers[i] is
NULL, so this was causing a segfault.
This patch switches to using
gl_transform_feedback_object::BufferNames[i], which is equal to
gl_transform_feedback_object::Buffers[i]->Name if
gl_transform_feedback_object::Buffers[i] is not NULL, and 0 if it is
NULL.
Fixes piglit test "EXT_transform_feedback/get-buffer-state
indexed_binding".
Reviewed-by: Eric Anholt <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
-rw-r--r-- | src/mesa/main/get.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c index 0c9d6b391d4..5ad601242f4 100644 --- a/src/mesa/main/get.c +++ b/src/mesa/main/get.c @@ -2498,7 +2498,7 @@ find_value_indexed(const char *func, GLenum pname, int index, union value *v) goto invalid_value; if (!ctx->Extensions.EXT_transform_feedback) goto invalid_enum; - v->value_int = ctx->TransformFeedback.CurrentObject->Buffers[index]->Name; + v->value_int = ctx->TransformFeedback.CurrentObject->BufferNames[index]; return TYPE_INT; } |