glsl: yet another swizzled expression fix

This fixes swizzled conditional expressions such "(b ? p : q).x"

(cherry picked from master, commit 00f0b05d5f)
This commit is contained in:
Brian Paul 2009-02-24 08:32:01 -07:00
parent 9d5aa36239
commit d5c06bb812

View file

@ -1838,8 +1838,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;