On Thu, 2014-08-21 at 14:37 -0500, Aaron Watry wrote: > v2: Change to C-style comments and fix indentation > > Signed-off-by: Aaron Watry <awa...@gmail.com> > --- > src/gallium/drivers/r600/compute_memory_pool.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/src/gallium/drivers/r600/compute_memory_pool.c > b/src/gallium/drivers/r600/compute_memory_pool.c > index 9324b84..82de9cd 100644 > --- a/src/gallium/drivers/r600/compute_memory_pool.c > +++ b/src/gallium/drivers/r600/compute_memory_pool.c > @@ -95,6 +95,11 @@ void compute_memory_pool_delete(struct > compute_memory_pool* pool) > pool->screen->b.b.resource_destroy((struct pipe_screen *) > pool->screen, (struct pipe_resource *)pool->bo); > } > + /* In theory, all of the items were freed in compute_memory_free. > + Just delete the list heads */
Hi, If you are worried about the items not have been freed, you can try doing something like this (mostly copied from compute_memory_free): struct compute_memory_item *item, *next; struct pipe_screen *screen = (struct pipe_screen *)pool->screen; struct pipe_resource *res; if (!LIST_IS_EMPTY(pool->item_list)) { LIST_FOR_EACH_ENTRY_SAFE(item, next, pool->item_list, link) { if (item->real_buffer) { res = (struct pipe_resource *)item->real_buffer; pool->screen->b.b.resource_destroy(screen, res); } free(item); } } /* And the same for the unallocated_list */ Note: I haven't tested it, but I think that it should work. Hope it helps! Bruno > + free(pool->item_list); > + free(pool->unallocated_list); > + /* And then the pool itself */ > free(pool); > } > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev