summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2008-08-04 13:05:49 -0600
committerBrian Paul <[email protected]>2008-08-04 17:14:48 -0600
commit02d223a7812c5cdf4bac5a83a8c9ce94a88fdba1 (patch)
tree64b66fd8e504d7edc7090d2bbc9e5de4ff47d463
parent1028458354773d748278d7719f695eb4c2ffc090 (diff)
mesa: glsl: stop code emit after error is recorded
-rw-r--r--src/mesa/shader/slang/slang_emit.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mesa/shader/slang/slang_emit.c b/src/mesa/shader/slang/slang_emit.c
index 3d76c80b584..323fc511a6e 100644
--- a/src/mesa/shader/slang/slang_emit.c
+++ b/src/mesa/shader/slang/slang_emit.c
@@ -1633,12 +1633,18 @@ emit(slang_emit_info *emitInfo, slang_ir_node *n)
if (!n)
return NULL;
+ if (emitInfo->log->error_flag) {
+ return NULL;
+ }
+
switch (n->Opcode) {
case IR_SEQ:
/* sequence of two sub-trees */
assert(n->Children[0]);
assert(n->Children[1]);
emit(emitInfo, n->Children[0]);
+ if (emitInfo->log->error_flag)
+ return NULL;
inst = emit(emitInfo, n->Children[1]);
#if 0
assert(!n->Store);