diff options
author | Brian <brian@yutani.localnet.net> | 2007-01-17 09:54:31 -0700 |
---|---|---|
committer | Brian <brian@yutani.localnet.net> | 2007-01-17 09:54:31 -0700 |
commit | 811f54fa75a557380b34ac97929eaa0190d2d5aa (patch) | |
tree | 6241ff5addff4e0d5e92a9808c232ffa7f4ec9fa /src/mesa/shader/slang/slang_emit.c | |
parent | 552a65e4546bd543d60ffe87dc298a41d8a318be (diff) |
Fix/clean-up a number of things related to variable/temporary allocation.
Diffstat (limited to 'src/mesa/shader/slang/slang_emit.c')
-rw-r--r-- | src/mesa/shader/slang/slang_emit.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/mesa/shader/slang/slang_emit.c b/src/mesa/shader/slang/slang_emit.c index 1142bc6416..52627486bd 100644 --- a/src/mesa/shader/slang/slang_emit.c +++ b/src/mesa/shader/slang/slang_emit.c @@ -618,10 +618,15 @@ emit(slang_var_table *vt, slang_ir_node *n, struct gl_program *prog) assert(n->Store->File != PROGRAM_UNDEFINED); assert(n->Store->Size > 0); assert(n->Store->Index < 0); - if (!n->Var || n->Var->isTemp) + if (!n->Var || n->Var->isTemp) { + /* a nameless/temporary variable, will be freed after first use */ n->Store->Index = _slang_alloc_temp(vt, n->Store->Size); - else + } + else { + /* a regular variable */ + _slang_add_variable(vt, n->Var); n->Store->Index = _slang_alloc_var(vt, n->Store->Size); + } assert(n->Store->Index >= 0); break; |