summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Olšák <maraeo@gmail.com>2010-04-14 20:23:15 +0200
committerMarek Olšák <maraeo@gmail.com>2010-04-14 20:29:42 +0200
commitd72f1c3b80f84e8bceb414439b679b3fe71ec5b9 (patch)
tree7e0de037e18592b5f9106549f9092cab7d0125c2
parent0863c7e499a553c2d8e7bcbd09c5de88e396fcd0 (diff)
r300g: fix possible crash when shader compilation fails
This hopefully fixes the crash in the FDO bug #27634, not the bug itself.
-rw-r--r--src/gallium/drivers/r300/r300_fs.c3
-rw-r--r--src/gallium/drivers/r300/r300_vs.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/src/gallium/drivers/r300/r300_fs.c b/src/gallium/drivers/r300/r300_fs.c
index 8da0796e70..3cddf98675 100644
--- a/src/gallium/drivers/r300/r300_fs.c
+++ b/src/gallium/drivers/r300/r300_fs.c
@@ -278,7 +278,10 @@ static void r300_translate_fragment_shader(
"Giving up...\n");
abort();
}
+
+ rc_destroy(&compiler.Base);
r300_dummy_fragment_shader(r300, shader);
+ return;
}
/* Initialize numbers of constants for each type. */
diff --git a/src/gallium/drivers/r300/r300_vs.c b/src/gallium/drivers/r300/r300_vs.c
index 8137972f01..bfab9c3b01 100644
--- a/src/gallium/drivers/r300/r300_vs.c
+++ b/src/gallium/drivers/r300/r300_vs.c
@@ -330,7 +330,10 @@ void r300_translate_vertex_shader(struct r300_context* r300,
"Giving up...\n");
abort();
}
+
+ rc_destroy(&compiler.Base);
r300_dummy_vertex_shader(r300, vs);
+ return;
}
/* Initialize numbers of constants for each type. */