aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattias Andrée <m@maandree.se>2026-05-17 22:41:13 +0200
committerMattias Andrée <m@maandree.se>2026-05-17 22:41:13 +0200
commitfd67b2b01b762ecebe8bcc3666db0732774d4d54 (patch)
tree1a581123bb5d045350cea09192239a10f38ab1ca
parentFix cache coherency bug (diff)
downloadlibar2simplified-fd67b2b01b762ecebe8bcc3666db0732774d4d54.tar.gz
libar2simplified-fd67b2b01b762ecebe8bcc3666db0732774d4d54.tar.bz2
libar2simplified-fd67b2b01b762ecebe8bcc3666db0732774d4d54.tar.xz
Simplify alignment calculationHEADmaster
Signed-off-by: Mattias Andrée <m@maandree.se>
Diffstat (limited to '')
-rw-r--r--libar2simplified_init_context.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/libar2simplified_init_context.c b/libar2simplified_init_context.c
index 6a5cb88..814e182 100644
--- a/libar2simplified_init_context.c
+++ b/libar2simplified_init_context.c
@@ -51,8 +51,9 @@ alignedalloc(size_t num, size_t size, size_t extra, size_t alignment)
static void *
allocate(size_t num, size_t size, size_t alignment, struct libar2_context *ctx)
{
- size_t pad = (alignment - ((2 * sizeof(size_t)) & (alignment - 1))) & (alignment - 1);
- char *ptr = alignedalloc(num, size, pad + 2 * sizeof(size_t), alignment);
+ size_t extra = 2 * sizeof(size_t);
+ size_t pad = -extra & (alignment - 1);
+ char *ptr = alignedalloc(num, size, pad + extra, alignment);
if (ptr) {
ptr += pad;
memcpy(ptr, &pad, sizeof(size_t));