summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/softpipe
diff options
context:
space:
mode:
authorRoland Scheidegger <sroland@vmware.com>2013-08-30 16:34:26 +0200
committerRoland Scheidegger <sroland@vmware.com>2013-08-30 23:20:03 +0200
commit81ab3e57bc049b280f9d41bdcbfd0a9f327f6bde (patch)
tree863173a9e59354af88e2af108732d1987da1627d /src/gallium/drivers/softpipe
parent289faa7e23cdac352b4936d743a477db5c5a97b9 (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 <jfonseca@vmware.com> Reviewed-by: Zack Rusin <zackr@vmware.com>
Diffstat (limited to 'src/gallium/drivers/softpipe')
-rw-r--r--src/gallium/drivers/softpipe/sp_draw_arrays.c7
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,