diff options
| author | Brian Paul <brianp@vmware.com> | 2010-05-04 13:23:41 -0600 | 
|---|---|---|
| committer | Brian Paul <brianp@vmware.com> | 2010-05-04 17:17:04 -0600 | 
| commit | 477b0d838b7ac3f9d0534df28f6af9e17c403a71 (patch) | |
| tree | 81b7cb0daf72520849eb43e512a3d7ffc6f18c75 /src/gallium/drivers | |
| parent | 0671c6b5891f38347a3186f367913d674d3196c4 (diff) | |
llvmpipe: do some null pointer checking
Diffstat (limited to 'src/gallium/drivers')
| -rw-r--r-- | src/gallium/drivers/llvmpipe/lp_setup.c | 39 | 
1 files changed, 22 insertions, 17 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_setup.c b/src/gallium/drivers/llvmpipe/lp_setup.c index 1a2cd55b16..d800b7b05a 100644 --- a/src/gallium/drivers/llvmpipe/lp_setup.c +++ b/src/gallium/drivers/llvmpipe/lp_setup.c @@ -644,16 +644,19 @@ lp_setup_update_state( struct lp_setup_context *setup )        stored = lp_scene_alloc_aligned(scene, 4 * 16, 16); -      /* smear each blend color component across 16 ubyte elements */ -      for (i = 0; i < 4; ++i) { -         uint8_t c = float_to_ubyte(setup->blend_color.current.color[i]); -         for (j = 0; j < 16; ++j) -            stored[i*16 + j] = c; -      } +      if (stored) { +         /* smear each blend color component across 16 ubyte elements */ +         for (i = 0; i < 4; ++i) { +            uint8_t c = float_to_ubyte(setup->blend_color.current.color[i]); +            for (j = 0; j < 16; ++j) +               stored[i*16 + j] = c; +         } -      setup->blend_color.stored = stored; +         setup->blend_color.stored = stored; + +         setup->fs.current.jit_context.blend_color = setup->blend_color.stored; +      } -      setup->fs.current.jit_context.blend_color = setup->blend_color.stored;        setup->dirty |= LP_SETUP_NEW_FS;     } @@ -662,17 +665,19 @@ lp_setup_update_state( struct lp_setup_context *setup )        stored = lp_scene_alloc_aligned(scene, 4 * sizeof(int32_t), 16); -      stored[0] = (float) setup->scissor.current.minx; -      stored[1] = (float) setup->scissor.current.miny; -      stored[2] = (float) setup->scissor.current.maxx; -      stored[3] = (float) setup->scissor.current.maxy; +      if (stored) { +         stored[0] = (float) setup->scissor.current.minx; +         stored[1] = (float) setup->scissor.current.miny; +         stored[2] = (float) setup->scissor.current.maxx; +         stored[3] = (float) setup->scissor.current.maxy; -      setup->scissor.stored = stored; +         setup->scissor.stored = stored; -      setup->fs.current.jit_context.scissor_xmin = stored[0]; -      setup->fs.current.jit_context.scissor_ymin = stored[1]; -      setup->fs.current.jit_context.scissor_xmax = stored[2]; -      setup->fs.current.jit_context.scissor_ymax = stored[3]; +         setup->fs.current.jit_context.scissor_xmin = stored[0]; +         setup->fs.current.jit_context.scissor_ymin = stored[1]; +         setup->fs.current.jit_context.scissor_xmax = stored[2]; +         setup->fs.current.jit_context.scissor_ymax = stored[3]; +      }        setup->dirty |= LP_SETUP_NEW_FS;     }  | 
