vk/allocator: Assert that block_pool_grow succeeds
authorJason Ekstrand <jason.ekstrand@intel.com>
Mon, 18 May 2015 22:46:42 +0000 (15:46 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Mon, 18 May 2015 22:48:19 +0000 (15:48 -0700)
src/vulkan/allocator.c

index 4c293f12b1a8dfc37905111a1574dd1802c9580b..94b7d548bfcc3ca5445994daa1020b36eecbd733 100644 (file)
@@ -313,20 +313,25 @@ anv_block_pool_alloc(struct anv_block_pool *pool)
    uint32_t offset, block, size;
 
    /* Try free list first. */
-   if (anv_free_list_pop(&pool->free_list, &pool->map, &offset))
+   if (anv_free_list_pop(&pool->free_list, &pool->map, &offset)) {
+      assert(pool->map);
       return offset;
+   }
 
  restart:
    size = pool->size;
    block = __sync_fetch_and_add(&pool->next_block, pool->block_size);
    if (block < size) {
+      assert(pool->map);
       return block;
    } else if (block == size) {
       /* We allocated the first block outside the pool, we have to grow it.
        * pool->next_block acts a mutex: threads who try to allocate now will
        * get block indexes above the current limit and hit futex_wait
        * below. */
-      anv_block_pool_grow(pool);
+      int err = anv_block_pool_grow(pool);
+      assert(err == 0);
+      (void) err;
       futex_wake(&pool->size, INT_MAX);
    } else {
       futex_wait(&pool->size, size);