[Mesa-dev] Mesa (gles3): mesa/uniform_query: Don' t write to *params if there is an error
Ian Romanick
idr at freedesktop.org
Thu Dec 13 03:11:32 PST 2012
On 12/08/2012 11:25 AM, Matt Turner wrote:
> Module: Mesa
> Branch: gles3
> Commit: d7063e8ee25963d08de2cd4d4ba61260c8eca9ca
> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d7063e8ee25963d08de2cd4d4ba61260c8eca9ca
>
> Author: Matt Turner <mattst88 at gmail.com>
> Date: Fri Dec 7 16:32:30 2012 -0800
>
> mesa/uniform_query: Don't write to *params if there is an error
>
> The GL 3.1 and ES 3.0 specs say of glGetActiveUniformsiv:
> "If an error occurs, nothing will be written to params."
>
> So, make a pass through the indices and check that they're valid before
> the pass that actually writes to params. Checking pname happens on the
> first iteration of the second loop.
>
> Fixes es3conform's getactiveuniformsiv_for_nonexistent_uniform_indices
> test.
>
> Reviewed-by: Brian Paul <brianp at vmware.com>
> Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
This should just go directly to master too. Can you do that, and we can
rebase it out of gles3 soon? Also, please add
NOTE: This is a candidate for the 9.0 branch.
> ---
>
> src/mesa/main/uniform_query.cpp | 6 +++++-
> 1 files changed, 5 insertions(+), 1 deletions(-)
>
> diff --git a/src/mesa/main/uniform_query.cpp b/src/mesa/main/uniform_query.cpp
> index cbdd39e..245e9a7 100644
> --- a/src/mesa/main/uniform_query.cpp
> +++ b/src/mesa/main/uniform_query.cpp
> @@ -97,12 +97,16 @@ _mesa_GetActiveUniformsiv(GLuint program,
>
> for (i = 0; i < uniformCount; i++) {
> GLuint index = uniformIndices[i];
> - const struct gl_uniform_storage *uni = &shProg->UniformStorage[index];
>
> if (index >= shProg->NumUserUniformStorage) {
> _mesa_error(ctx, GL_INVALID_VALUE, "glGetActiveUniformsiv(index)");
> return;
> }
> + }
> +
> + for (i = 0; i < uniformCount; i++) {
> + GLuint index = uniformIndices[i];
> + const struct gl_uniform_storage *uni = &shProg->UniformStorage[index];
>
> switch (pname) {
> case GL_UNIFORM_TYPE:
>
> _______________________________________________
> mesa-commit mailing list
> mesa-commit at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-commit
>
More information about the mesa-dev
mailing list