From c2ece77678c19f6aee1d9a3ef65a1251a59dd2ae Mon Sep 17 00:00:00 2001 From: Ilia Mirkin Date: Sat, 21 Feb 2015 12:53:43 -0500 Subject: glsl: ensure that enter/leave record get a record type May make life easier for tools like Coverity. Signed-off-by: Ilia Mirkin Reviewed-by: Matt Turner --- src/glsl/link_uniform_blocks.cpp | 3 +++ src/glsl/link_uniforms.cpp | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/glsl/link_uniform_blocks.cpp b/src/glsl/link_uniform_blocks.cpp index 1c175ec..6ca4110 100644 --- a/src/glsl/link_uniform_blocks.cpp +++ b/src/glsl/link_uniform_blocks.cpp @@ -69,12 +69,15 @@ private: virtual void enter_record(const glsl_type *type, const char *name, bool row_major) { + assert(type->is_record()); this->offset = glsl_align( this->offset, type->std140_base_alignment(row_major)); } virtual void leave_record(const glsl_type *type, const char *name, bool row_major) { + assert(type->is_record()); + /* If this is the last field of a structure, apply rule #9. The * GL_ARB_uniform_buffer_object spec says: * diff --git a/src/glsl/link_uniforms.cpp b/src/glsl/link_uniforms.cpp index 347f079..799c74b 100644 --- a/src/glsl/link_uniforms.cpp +++ b/src/glsl/link_uniforms.cpp @@ -546,12 +546,14 @@ private: virtual void enter_record(const glsl_type *type, const char *name, bool row_major) { + assert(type->is_record()); this->ubo_byte_offset = glsl_align( this->ubo_byte_offset, type->std140_base_alignment(row_major)); } virtual void leave_record(const glsl_type *type, const char *name, bool row_major) { + assert(type->is_record()); this->ubo_byte_offset = glsl_align( this->ubo_byte_offset, type->std140_base_alignment(row_major)); } -- cgit v1.1