From 81ab3e57bc049b280f9d41bdcbfd0a9f327f6bde Mon Sep 17 00:00:00 2001 From: Roland Scheidegger Date: Fri, 30 Aug 2013 16:34:26 +0200 Subject: [PATCH] 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 Reviewed-by: Zack Rusin --- src/gallium/drivers/softpipe/sp_draw_arrays.c | 7 +++++-- 1 file 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, -- 2.30.2