From 7908c239e0fdc11d878b8c68d126c3364af0ee24 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Fri, 9 Oct 2009 19:17:30 +0100 Subject: llvmpipe: Additional checks for binner block lists. --- src/gallium/drivers/llvmpipe/lp_setup.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/gallium/drivers/llvmpipe/lp_setup.c') diff --git a/src/gallium/drivers/llvmpipe/lp_setup.c b/src/gallium/drivers/llvmpipe/lp_setup.c index 428d2d00850..a74756de7ca 100644 --- a/src/gallium/drivers/llvmpipe/lp_setup.c +++ b/src/gallium/drivers/llvmpipe/lp_setup.c @@ -101,7 +101,7 @@ static void reset_context( struct setup_context *setup ) SETUP_DEBUG("%s\n", __FUNCTION__); - /* Free binner command lists: + /* Free all but last binner command lists: */ for (i = 0; i < setup->tiles_x; i++) { for (j = 0; j < setup->tiles_y; j++) { @@ -114,12 +114,13 @@ static void reset_context( struct setup_context *setup ) FREE(block); } + assert(list->tail->next == NULL); list->head = list->tail; list->head->count = 0; } } - /* Free binned data: + /* Free all but last binned data block: */ { struct data_block_list *list = &setup->data; @@ -130,6 +131,7 @@ static void reset_context( struct setup_context *setup ) FREE(block); } + assert(list->tail->next == NULL); list->head = list->tail; list->head->used = 0; } @@ -588,6 +590,8 @@ lp_setup_destroy( struct setup_context *setup ) for (j = 0; j < TILES_Y; j++) FREE(setup->tile[i][j].head); + FREE(setup->data.head); + lp_rast_destroy( setup->rast ); FREE( setup ); } -- cgit v1.2.3