diff options
author | Brian Paul <[email protected]> | 2008-05-19 09:34:28 -0600 |
---|---|---|
committer | Brian Paul <[email protected]> | 2008-05-19 09:34:28 -0600 |
commit | 59007a811de2d76ea00164e8f1cacb4a375d1458 (patch) | |
tree | da53224b11dac62a89c67d96f3c71baa12a6f2af /src | |
parent | 38fb20b2240e826394dbf56dc54f226c5f887631 (diff) |
if x86_get_func() returns NULL, handle it properly instead of aborting
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/auxiliary/draw/draw_vs_sse.c | 3 | ||||
-rw-r--r-- | src/gallium/drivers/softpipe/sp_fs_sse.c | 6 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/draw/draw_vs_sse.c b/src/gallium/auxiliary/draw/draw_vs_sse.c index 5929ea76b23..e3f4e67472a 100644 --- a/src/gallium/auxiliary/draw/draw_vs_sse.c +++ b/src/gallium/auxiliary/draw/draw_vs_sse.c @@ -215,6 +215,9 @@ draw_create_vs_sse(struct draw_context *draw, goto fail; vs->func = (codegen_function) x86_get_func( &vs->sse2_program ); + if (!vs->func) { + goto fail; + } return &vs->base; diff --git a/src/gallium/drivers/softpipe/sp_fs_sse.c b/src/gallium/drivers/softpipe/sp_fs_sse.c index 25fdfea4915..55741cc1df8 100644 --- a/src/gallium/drivers/softpipe/sp_fs_sse.c +++ b/src/gallium/drivers/softpipe/sp_fs_sse.c @@ -139,7 +139,11 @@ softpipe_create_fs_sse(struct softpipe_context *softpipe, } shader->func = (codegen_function) x86_get_func( &shader->sse2_program ); - assert(shader->func); + if (!shader->func) { + x86_release_func( &shader->sse2_program ); + FREE(shader); + return NULL; + } shader->base.shader = *templ; shader->base.prepare = fs_sse_prepare; |