diff options
author | Brian Paul <[email protected]> | 2008-12-12 13:18:30 -0700 |
---|---|---|
committer | Brian Paul <[email protected]> | 2009-01-06 09:10:21 -0700 |
commit | a2ca0c0430433893876179a39f85a428862eabb2 (patch) | |
tree | 1e0be6757f6bf4eaa796c2c87265ddd9a70a5212 | |
parent | 47331842d4956fb7ccff002d9b86097749345d99 (diff) |
mesa: array size fix in _slang_typeof_operation()
(cherry picked from commit 87a00959ba40ee0aeaebbc8a86ca081cf3b81c75)
-rw-r--r-- | src/mesa/shader/slang/slang_typeinfo.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/mesa/shader/slang/slang_typeinfo.c b/src/mesa/shader/slang/slang_typeinfo.c index 3978df751d1..bd135c1a117 100644 --- a/src/mesa/shader/slang/slang_typeinfo.c +++ b/src/mesa/shader/slang/slang_typeinfo.c @@ -600,7 +600,15 @@ _slang_typeof_operation(slang_operation * op, return GL_FALSE; } ti->can_be_referenced = GL_TRUE; - ti->array_len = var->array_len; + if (var->type.specifier.type == SLANG_SPEC_ARRAY && + var->type.array_len >= 1) { + /* the datatype is an array, ex: float[3] x; */ + ti->array_len = var->type.array_len; + } + else { + /* the variable is an array, ex: float x[3]; */ + ti->array_len = var->array_len; + } } break; case SLANG_OPER_SEQUENCE: |