fix _mesa_get_uniform_location() so it uses the given program handle
diff --git a/src/mesa/shader/shader_api.c b/src/mesa/shader/shader_api.c
index 6bae17a..e2fedf7 100644
--- a/src/mesa/shader/shader_api.c
+++ b/src/mesa/shader/shader_api.c
@@ -741,8 +741,9 @@
 GLint
 _mesa_get_uniform_location(GLcontext *ctx, GLuint program, const GLchar *name)
 {
-   if (ctx->Shader.CurrentProgram) {
-      const struct gl_shader_program *shProg = ctx->Shader.CurrentProgram;
+   struct gl_shader_program *shProg
+      = _mesa_lookup_shader_program(ctx, program);
+   if (shProg) {
       GLuint loc;
       for (loc = 0; loc < shProg->Uniforms->NumParameters; loc++) {
          const struct gl_program_parameter *u