ping x2 Also an 8.0 candidate, now that 8.0 exists.
On Mon, Jan 16, 2012 at 6:52 PM, nobled <[email protected]> wrote: > ping? > > On Thu, Dec 22, 2011 at 4:34 PM, [email protected] wrote: >> The error was erroneously removed in this commit: >> >> 719909698c67c287a393d2380278e7b7495ae018 >> "mesa: Rewrite the way uniforms are tracked and handled" >> >> You also aren't even supposed to truncate the output to 'bufSize', >> so just return like before. >> >> Also fixup an old comment and add an assert. >> --- >> (This function has a random mixture of tabs+spaces and pure spaces for >> indentation, so I had no idea which style to use...) >> >> src/mesa/main/uniform_query.cpp | 16 ++++++++++++---- >> src/mesa/main/uniforms.c | 2 +- >> 2 files changed, 13 insertions(+), 5 deletions(-) >> >> diff --git a/src/mesa/main/uniform_query.cpp >> b/src/mesa/main/uniform_query.cpp >> index 33ba53c..8e58fc0 100644 >> --- a/src/mesa/main/uniform_query.cpp >> +++ b/src/mesa/main/uniform_query.cpp >> @@ -203,10 +203,18 @@ _mesa_get_uniform(struct gl_context *ctx, GLuint >> program, GLint location, >> const union gl_constant_value *const src = >> &uni->storage[offset * elements]; >> >> - unsigned bytes = sizeof(uni->storage[0]) * elements; >> - if (bytes > (unsigned) bufSize) { >> - elements = bufSize / sizeof(uni->storage[0]); >> - bytes = bufSize; >> + assert(returnType == GLSL_TYPE_FLOAT || returnType == GLSL_TYPE_INT || >> + returnType == GLSL_TYPE_UINT); >> + /* The three (currently) supported types all have the same size, >> + * which is of course the same as their union. That'll change >> + * with glGetUniformdv()... >> + */ >> + unsigned bytes = sizeof(src[0]) * elements; >> + if (bufSize < 0 || bytes > (unsigned) bufSize) { >> + _mesa_error( ctx, GL_INVALID_OPERATION, >> + "glGetnUniformfvARB(out of bounds: bufSize is %d," >> + " but %u bytes are required)", bufSize, bytes ); >> + return; >> } >> >> /* If the return type and the uniform's native type are "compatible," >> diff --git a/src/mesa/main/uniforms.c b/src/mesa/main/uniforms.c >> index 685c0f1..981874e 100644 >> --- a/src/mesa/main/uniforms.c >> +++ b/src/mesa/main/uniforms.c >> @@ -478,7 +478,7 @@ _mesa_GetnUniformdvARB(GLhandleARB program, GLint >> location, >> (void) params; >> >> /* >> - _mesa_get_uniform(ctx, program, location, bufSize, GL_DOUBLE, params); >> + _mesa_get_uniform(ctx, program, location, bufSize, >> GLSL_TYPE_DOUBLE, params); >> */ >> _mesa_error(ctx, GL_INVALID_OPERATION, "glGetUniformdvARB" >> "(GL_ARB_gpu_shader_fp64 not implemented)"); >> -- >> 1.7.4.1 _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
