diff options
author | Rhys Perry <pendingchaos02@gmail.com> | 2023-06-07 12:13:22 +0100 |
---|---|---|
committer | Marge Bot <emma+marge@anholt.net> | 2023-06-08 18:15:13 +0000 |
commit | 7a4a2428c0e63af138a54a1a2b45be4e70906926 (patch) | |
tree | ccc42457d65c127575a832ab736b7a682797ab5e /src/util/ralloc.c | |
parent | 928f31a24a83524ea696a52690e4479804c2381e (diff) | |
download | mesa-7a4a2428c0e63af138a54a1a2b45be4e70906926.tar.gz mesa-7a4a2428c0e63af138a54a1a2b45be4e70906926.tar.bz2 mesa-7a4a2428c0e63af138a54a1a2b45be4e70906926.zip |
util/tests: add gc_alloc_size alignment tests
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23501>
Diffstat (limited to 'src/util/ralloc.c')
-rw-r--r-- | src/util/ralloc.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/util/ralloc.c b/src/util/ralloc.c index c3a4befc144..d785ef451bd 100644 --- a/src/util/ralloc.c +++ b/src/util/ralloc.c @@ -38,9 +38,9 @@ #define CANARY 0x5A1106 #if defined(__LP64__) || defined(_WIN64) -#define HEADER_ALIGN alignas(16) +#define HEADER_ALIGN 16 #else -#define HEADER_ALIGN alignas(8) +#define HEADER_ALIGN 8 #endif /* Align the header's size so that ralloc() allocations will return with the @@ -50,7 +50,7 @@ */ struct ralloc_header { - HEADER_ALIGN + alignas(HEADER_ALIGN) #ifndef NDEBUG /* A canary value used to determine whether a pointer is ralloc'd. */ @@ -578,7 +578,7 @@ typedef struct * allocated using a freelist backed by a simple linear allocator. */ typedef struct gc_slab { - HEADER_ALIGN + alignas(HEADER_ALIGN) gc_ctx *ctx; @@ -801,6 +801,9 @@ gc_alloc_size(gc_ctx *ctx, size_t size, size_t align) */ assert((align - alignof(gc_block_header)) <= 127); + /* We can only align as high as the slab is. */ + assert(align <= HEADER_ALIGN); + size_t header_size = align64(sizeof(gc_block_header), align); size = align64(size, align); size += header_size; @@ -954,7 +957,7 @@ gc_sweep_end(gc_ctx *ctx) struct linear_header { - HEADER_ALIGN + alignas(HEADER_ALIGN) #ifndef NDEBUG unsigned magic; /* for debugging */ |