summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/mesa/shader/slang/slang_codegen.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/mesa/shader/slang/slang_codegen.c b/src/mesa/shader/slang/slang_codegen.c
index 8663054a9de..80bbf2a5e5b 100644
--- a/src/mesa/shader/slang/slang_codegen.c
+++ b/src/mesa/shader/slang/slang_codegen.c
@@ -315,10 +315,10 @@ _slang_attach_storage(slang_ir_node *n, slang_variable *var)
n->Var = var;
if (!n->Store) {
- /* need to setup storage */
- if (n->Var && n->Var->store) {
- /* node storage info = var storage info */
- n->Store = n->Var->store;
+ /* need to setup node's storage */
+ if (var->store) {
+ /* node's storage = var's storage */
+ n->Store = var->store;
}
else {
/* alloc new storage info */
@@ -328,9 +328,7 @@ _slang_attach_storage(slang_ir_node *n, slang_variable *var)
(char*) var->a_name,
(void*) n->Store, n->Store->Size);
#endif
- if (n->Var)
- n->Var->store = n->Store;
- assert(n->Var->store);
+ var->store = n->Store;
}
}
}
@@ -745,6 +743,7 @@ new_var(slang_assemble_ctx *A, slang_variable *var)
{
slang_ir_node *n = new_node0(IR_VAR);
if (n) {
+ ASSERT(var->store);
_slang_attach_storage(n, var);
}
return n;