glsl: yet another swizzled expression fix

This fixes swizzled conditional expressions such "(b ? p : q).x"
This commit is contained in:
Brian Paul 2009-02-23 17:43:43 -07:00
parent f24ec99190
commit 00f0b05d5f
1 changed files with 5 additions and 2 deletions

View File

@ -1857,8 +1857,11 @@ emit_swizzle(slang_emit_info *emitInfo, slang_ir_node *n)
inst = emit(emitInfo, n->Children[0]);
assert(n->Children[0]->Store == n->Store->Parent);
assert(n->Store->Parent);
if (!n->Store->Parent) {
/* this covers a case such as "(b ? p : q).x" */
n->Store->Parent = n->Children[0]->Store;
assert(n->Store->Parent);
}
{
const GLuint swizzle = n->Store->Swizzle;