Mesa (master): glsl: Fix MSVC build.

Jose Fonseca jrfonseca at kemper.freedesktop.org
Tue May 28 12:56:29 UTC 2013


Module: Mesa
Branch: master
Commit: 4eaa0999b52d2c7a8fb561305eef889dc7de2d2f
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4eaa0999b52d2c7a8fb561305eef889dc7de2d2f

Author: José Fonseca <jfonseca at vmware.com>
Date:   Tue May 28 13:56:18 2013 +0100

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.

---

 src/glsl/link_uniforms.cpp |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/glsl/link_uniforms.cpp b/src/glsl/link_uniforms.cpp
index 04218be..ad63668 100644
--- a/src/glsl/link_uniforms.cpp
+++ b/src/glsl/link_uniforms.cpp
@@ -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




More information about the mesa-commit mailing list