Mesa (master): llvmpipe: do some null pointer checking

Brian Paul brianp at kemper.freedesktop.org
Tue May 4 23:25:56 UTC 2010


Module: Mesa
Branch: master
Commit: 477b0d838b7ac3f9d0534df28f6af9e17c403a71
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=477b0d838b7ac3f9d0534df28f6af9e17c403a71

Author: Brian Paul <brianp at vmware.com>
Date:   Tue May  4 13:23:41 2010 -0600

llvmpipe: do some null pointer checking

---

 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 1a2cd55..d800b7b 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;
    }




More information about the mesa-commit mailing list