diff options
author | Roland Scheidegger <[email protected]> | 2013-08-30 16:34:26 +0200 |
---|---|---|
committer | Roland Scheidegger <[email protected]> | 2013-08-30 23:20:03 +0200 |
commit | 81ab3e57bc049b280f9d41bdcbfd0a9f327f6bde (patch) | |
tree | 863173a9e59354af88e2af108732d1987da1627d | |
parent | 289faa7e23cdac352b4936d743a477db5c5a97b9 (diff) |
softpipe: check if so_target is NULL before accessing it
No idea if this is working right but copied straight from llvmpipe.
(Not only does this check the so_target but also use buffer->data instead
of buffer for the mapping.)
Just trying to get rid of a segfault testing something else...
Reviewed-by: Jose Fonseca <[email protected]>
Reviewed-by: Zack Rusin <[email protected]>
-rw-r--r-- | src/gallium/drivers/softpipe/sp_draw_arrays.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/gallium/drivers/softpipe/sp_draw_arrays.c b/src/gallium/drivers/softpipe/sp_draw_arrays.c index 6b06f70a16e..4d56b1c06ce 100644 --- a/src/gallium/drivers/softpipe/sp_draw_arrays.c +++ b/src/gallium/drivers/softpipe/sp_draw_arrays.c @@ -107,8 +107,11 @@ softpipe_draw_vbo(struct pipe_context *pipe, for (i = 0; i < sp->num_so_targets; i++) { - void *buf = softpipe_resource_data(sp->so_targets[i]->target.buffer); - sp->so_targets[i]->mapping = buf; + void *buf = 0; + if (sp->so_targets[i]) { + buf = softpipe_resource(sp->so_targets[i]->target.buffer)->data; + sp->so_targets[i]->mapping = buf; + } } draw_set_mapped_so_targets(draw, sp->num_so_targets, |