diff options
author | Kenneth Graunke <[email protected]> | 2011-09-05 12:03:29 -0700 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2011-09-07 07:49:32 -0700 |
commit | 8ceb235c9cbb9504e32479db54287ed9387df75a (patch) | |
tree | ede163deb63bf9e26a347276dcc3e194b4e9cc2a | |
parent | 6afce988a9ee41af4ac1244d488ae6b89edf8d13 (diff) |
glsl/ir_reader: Make sure constants have the right number of components.
The list of numbers in (constant type (<numbers>)) needs to contain
exactly type->components() numbers (16 for a mat4, 3 for a vec3, etc.)
Signed-off-by: Kenneth Graunke <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
-rw-r--r-- | src/glsl/ir_reader.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/glsl/ir_reader.cpp b/src/glsl/ir_reader.cpp index 22009eebcb9..10bf72aeeb8 100644 --- a/src/glsl/ir_reader.cpp +++ b/src/glsl/ir_reader.cpp @@ -820,6 +820,11 @@ ir_reader::read_constant(s_expression *expr) } ++k; } + if (k != type->components()) { + ir_read_error(values, "expected %d constant values, found %d", + type->components(), k); + return NULL; + } return new(mem_ctx) ir_constant(type, &data); } |