if x86_get_func() returns NULL, handle it properly instead of aborting
authorBrian Paul <brian.paul@tungstengraphics.com>
Mon, 19 May 2008 15:34:28 +0000 (09:34 -0600)
committerBrian Paul <brian.paul@tungstengraphics.com>
Mon, 19 May 2008 15:34:28 +0000 (09:34 -0600)
src/gallium/auxiliary/draw/draw_vs_sse.c
src/gallium/drivers/softpipe/sp_fs_sse.c

index 5929ea76b23d17441558d0fadbd8c9bfb6484b08..e3f4e67472ac3d2c7f28eca43967b527c062112c 100644 (file)
@@ -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;
 
index 25fdfea4915e5388c814aef9d0f345e5d6813af6..55741cc1df89b9c88e816735603b826ee27b9493 100644 (file)
@@ -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;