summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2008-12-12 13:18:30 -0700
committerBrian Paul <[email protected]>2009-01-06 09:10:21 -0700
commita2ca0c0430433893876179a39f85a428862eabb2 (patch)
tree1e0be6757f6bf4eaa796c2c87265ddd9a70a5212 /src
parent47331842d4956fb7ccff002d9b86097749345d99 (diff)
mesa: array size fix in _slang_typeof_operation()
(cherry picked from commit 87a00959ba40ee0aeaebbc8a86ca081cf3b81c75)
Diffstat (limited to 'src')
-rw-r--r--src/mesa/shader/slang/slang_typeinfo.c10
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: