diff options
author | Marek Olšák <maraeo@gmail.com> | 2010-04-14 20:23:15 +0200 |
---|---|---|
committer | Marek Olšák <maraeo@gmail.com> | 2010-04-14 20:29:42 +0200 |
commit | d72f1c3b80f84e8bceb414439b679b3fe71ec5b9 (patch) | |
tree | 7e0de037e18592b5f9106549f9092cab7d0125c2 /src/gallium/drivers/r300 | |
parent | 0863c7e499a553c2d8e7bcbd09c5de88e396fcd0 (diff) |
r300g: fix possible crash when shader compilation fails
This hopefully fixes the crash in the FDO bug #27634, not the bug itself.
Diffstat (limited to 'src/gallium/drivers/r300')
-rw-r--r-- | src/gallium/drivers/r300/r300_fs.c | 3 | ||||
-rw-r--r-- | src/gallium/drivers/r300/r300_vs.c | 3 |
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. */ |