glsl: Fix MSVC build.

It appears that `sizeof(Class::member)` is either non-standard or
merely unsupported in MSVC.

So use `sizeof(instance->member)` instead, which is guaranteed to work
everywhere.

Also promote the assert to a static assert.

Trivial.
This commit is contained in:
José Fonseca 2013-05-28 13:56:18 +01:00
parent d4a06d77f5
commit 4eaa0999b5

View file

@ -653,7 +653,7 @@ link_assign_uniform_locations(struct gl_shader_program *prog)
* types cannot have initializers."
*/
memset(prog->_LinkedShaders[i]->SamplerUnits, 0,
sizeof(gl_shader::SamplerUnits));
sizeof(prog->_LinkedShaders[i]->SamplerUnits));
link_update_uniform_buffer_variables(prog->_LinkedShaders[i]);
@ -724,9 +724,9 @@ link_assign_uniform_locations(struct gl_shader_program *prog)
prog->_LinkedShaders[i]->active_samplers = parcel.shader_samplers_used;
prog->_LinkedShaders[i]->shadow_samplers = parcel.shader_shadow_samplers;
assert(sizeof(gl_shader::SamplerTargets) == sizeof(parcel.targets));
STATIC_ASSERT(sizeof(prog->_LinkedShaders[i]->SamplerTargets) == sizeof(parcel.targets));
memcpy(prog->_LinkedShaders[i]->SamplerTargets, parcel.targets,
sizeof(gl_shader::SamplerTargets));
sizeof(prog->_LinkedShaders[i]->SamplerTargets));
}
#ifndef NDEBUG