mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 13:58:04 +02:00
util: remove the dummy field in mempool
It should allocate less memory now.
This commit is contained in:
parent
95ca22001a
commit
fd03dd203f
2 changed files with 4 additions and 14 deletions
|
|
@ -30,8 +30,6 @@
|
|||
|
||||
#define UTIL_MEMPOOL_MAGIC 0xcafe4321
|
||||
|
||||
struct util_mempool_block_body { char dummy; };
|
||||
|
||||
/* The block is either allocated memory or free space. */
|
||||
struct util_mempool_block {
|
||||
/* The header. */
|
||||
|
|
@ -40,9 +38,6 @@ struct util_mempool_block {
|
|||
|
||||
intptr_t magic;
|
||||
|
||||
/* The block begins here. */
|
||||
struct util_mempool_block_body body;
|
||||
|
||||
/* Memory after the last member is dedicated to the block itself.
|
||||
* The allocated size is always larger than this structure. */
|
||||
};
|
||||
|
|
@ -52,7 +47,8 @@ util_mempool_get_block(struct util_mempool *pool,
|
|||
struct util_mempool_page *page, unsigned index)
|
||||
{
|
||||
return (struct util_mempool_block*)
|
||||
((uint8_t*)&page->body + (pool->block_size * index));
|
||||
((uint8_t*)page + sizeof(struct util_mempool_page) +
|
||||
(pool->block_size * index));
|
||||
}
|
||||
|
||||
static void util_mempool_add_new_page(struct util_mempool *pool)
|
||||
|
|
@ -92,15 +88,14 @@ static void *util_mempool_malloc_st(struct util_mempool *pool)
|
|||
assert(block->magic == UTIL_MEMPOOL_MAGIC);
|
||||
pool->first_free = block->next_free;
|
||||
|
||||
return &block->body;
|
||||
return (uint8_t*)block + sizeof(struct util_mempool_block);
|
||||
}
|
||||
|
||||
static void util_mempool_free_st(struct util_mempool *pool, void *ptr)
|
||||
{
|
||||
struct util_mempool_block dummy;
|
||||
struct util_mempool_block *block =
|
||||
(struct util_mempool_block*)
|
||||
((uint8_t*)ptr - ((uint8_t*)&dummy.body - (uint8_t*)&dummy));
|
||||
((uint8_t*)ptr - sizeof(struct util_mempool_block));
|
||||
|
||||
assert(block->magic == UTIL_MEMPOOL_MAGIC);
|
||||
block->next_free = pool->first_free;
|
||||
|
|
|
|||
|
|
@ -43,16 +43,11 @@ enum util_mempool_threading {
|
|||
UTIL_MEMPOOL_MULTITHREADED = TRUE
|
||||
};
|
||||
|
||||
struct util_mempool_page_body { char dummy; };
|
||||
|
||||
/* The page is an array of blocks (allocations). */
|
||||
struct util_mempool_page {
|
||||
/* The header (linked-list pointers). */
|
||||
struct util_mempool_page *prev, *next;
|
||||
|
||||
/* The page begins here. */
|
||||
struct util_mempool_page_body body;
|
||||
|
||||
/* Memory after the last member is dedicated to the page itself.
|
||||
* The allocated size is always larger than this structure. */
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue