From: Brian Date: Sat, 11 Aug 2007 16:03:51 +0000 (+0100) Subject: fix invalid usage of buffer_unreference() X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=37fdc69a99a7692d337fb4efaea97df842490f21;p=mesa.git fix invalid usage of buffer_unreference() Need to pass the address of the buffer ptr, not the buffer ptr. Before, the region->buffer type was void * so it wasn't effectively type-checked. Changing the type to pipe_buffer_object* allows the compiler to detect the error. Fixing this solves a segfault. --- diff --git a/src/mesa/pipe/i915simple/i915_regions.c b/src/mesa/pipe/i915simple/i915_regions.c index 9b7cddb58dc..e27443a58c0 100644 --- a/src/mesa/pipe/i915simple/i915_regions.c +++ b/src/mesa/pipe/i915simple/i915_regions.c @@ -124,7 +124,7 @@ i915_region_release(struct pipe_context *pipe, struct pipe_region **region) assert((*region)->map_refcount == 0); i915->pipe.winsys->buffer_unreference( i915->pipe.winsys, - (*region)->buffer ); + &((*region)->buffer) ); free(*region); } *region = NULL; diff --git a/src/mesa/pipe/softpipe/sp_region.c b/src/mesa/pipe/softpipe/sp_region.c index 115f3ab8260..10b7479e975 100644 --- a/src/mesa/pipe/softpipe/sp_region.c +++ b/src/mesa/pipe/softpipe/sp_region.c @@ -119,7 +119,7 @@ sp_region_release(struct pipe_context *pipe, struct pipe_region **region) assert((*region)->map_refcount == 0); sp->pipe.winsys->buffer_unreference( sp->pipe.winsys, - (*region)->buffer ); + &((*region)->buffer) ); free(*region); } *region = NULL;