Mesa (mesa_7_7_branch): svga: check min_index, max_index before assertions
Brian Paul
brianp at kemper.freedesktop.org
Thu Feb 11 23:48:14 UTC 2010
Module: Mesa
Branch: mesa_7_7_branch
Commit: 408f32dc165b36eb5ec0e2bbc7dcecd28f3a62d3
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=408f32dc165b36eb5ec0e2bbc7dcecd28f3a62d3
Author: Brian Paul <brianp at vmware.com>
Date: Thu Feb 11 16:44:56 2010 -0700
svga: check min_index, max_index before assertions
It's possible for min_index and max_index to be ~0 if the min/max
values were not actually set or computed in the state tracker.
Skip some assertions in that case.
This only effects the debug build error checking.
---
src/gallium/drivers/svga/svga_draw.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/gallium/drivers/svga/svga_draw.c b/src/gallium/drivers/svga/svga_draw.c
index ca73cf9..1cd123b 100644
--- a/src/gallium/drivers/svga/svga_draw.c
+++ b/src/gallium/drivers/svga/svga_draw.c
@@ -253,7 +253,9 @@ enum pipe_error svga_hwtnl_prim( struct svga_hwtnl *hwtnl,
assert(index_bias >= 0);
assert(min_index <= max_index);
assert(offset + index_bias*stride < size);
- assert(offset + (index_bias + min_index)*stride < size);
+ if (min_index != ~0) {
+ assert(offset + (index_bias + min_index) * stride < size);
+ }
switch (hwtnl->cmd.vdecl[i].identity.type) {
case SVGA3D_DECLTYPE_FLOAT1:
@@ -314,7 +316,9 @@ enum pipe_error svga_hwtnl_prim( struct svga_hwtnl *hwtnl,
}
assert(!stride || width <= stride);
- assert(offset + (index_bias + max_index)*stride + width <= size);
+ if (max_index != ~0) {
+ assert(offset + (index_bias + max_index) * stride + width <= size);
+ }
}
assert(range->indexWidth == range->indexArray.stride);
More information about the mesa-commit
mailing list