[Mesa-dev] [PATCH] r600/compute: Don't leak compute pool item_list/unallocated_list
Jan Vesely
jan.vesely at rutgers.edu
Mon Aug 25 09:04:52 PDT 2014
On Sat, 2014-08-23 at 17:01 +0200, Bruno Jimenez wrote:
> 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 <awatry at 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):
Is the situation legal? My current understanding is that leftover items
would indicate a bug somewhere in the state tracker.
would assert(LIST_IS_EMPTY(pool->item_list))) ever hit?
jan
>
> 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 at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
--
Jan Vesely <jan.vesely at rutgers.edu>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20140825/a68cf148/attachment.sig>
More information about the mesa-dev
mailing list