diff options
author | Szabolcs Nagy <szabolcs.nagy@arm.com> | 2022-03-16 12:09:15 +0000 |
---|---|---|
committer | Szabolcs Nagy <szabolcs.nagy@arm.com> | 2022-11-22 14:24:26 +0000 |
commit | 5ba5d609c15317cfe93f22201cd008200cab9c24 (patch) | |
tree | ea67dc999deaa97f058b0bd2886f567011f628f5 | |
parent | 17034ac2bf79f415150b5b32b0e2bf24b8636267 (diff) | |
download | glibc-5ba5d609c15317cfe93f22201cd008200cab9c24.tar.gz glibc-5ba5d609c15317cfe93f22201cd008200cab9c24.tar.xz glibc-5ba5d609c15317cfe93f22201cd008200cab9c24.zip |
malloc: Use uintptr_t in alloc_buffer
The values represnt pointers and not sizes. The members of struct alloc_buffer are already uintptr_t.
-rw-r--r-- | include/alloc_buffer.h | 10 | ||||
-rw-r--r-- | malloc/alloc_buffer_alloc_array.c | 6 |
2 files changed, 8 insertions, 8 deletions
diff --git a/include/alloc_buffer.h b/include/alloc_buffer.h index be33e8b68c..1c1dbe0a46 100644 --- a/include/alloc_buffer.h +++ b/include/alloc_buffer.h @@ -248,9 +248,9 @@ __alloc_buffer_alloc (struct alloc_buffer *buf, size_t size, size_t align) if (size == 1 && align == 1) return alloc_buffer_alloc_bytes (buf, size); - size_t current = buf->__alloc_buffer_current; - size_t aligned = roundup (current, align); - size_t new_current = aligned + size; + uintptr_t current = buf->__alloc_buffer_current; + uintptr_t aligned = roundup (current, align); + uintptr_t new_current = aligned + size; if (aligned >= current /* No overflow in align step. */ && new_current >= size /* No overflow in size computation. */ && new_current <= buf->__alloc_buffer_end) /* Room in buffer. */ @@ -282,8 +282,8 @@ __alloc_buffer_next (struct alloc_buffer *buf, size_t align) if (align == 1) return (const void *) buf->__alloc_buffer_current; - size_t current = buf->__alloc_buffer_current; - size_t aligned = roundup (current, align); + uintptr_t current = buf->__alloc_buffer_current; + uintptr_t aligned = roundup (current, align); if (aligned >= current /* No overflow in align step. */ && aligned <= buf->__alloc_buffer_end) /* Room in buffer. */ { diff --git a/malloc/alloc_buffer_alloc_array.c b/malloc/alloc_buffer_alloc_array.c index d8c08d03ea..b5f32bb630 100644 --- a/malloc/alloc_buffer_alloc_array.c +++ b/malloc/alloc_buffer_alloc_array.c @@ -23,12 +23,12 @@ void * __libc_alloc_buffer_alloc_array (struct alloc_buffer *buf, size_t element_size, size_t align, size_t count) { - size_t current = buf->__alloc_buffer_current; + uintptr_t current = buf->__alloc_buffer_current; /* The caller asserts that align is a power of two. */ - size_t aligned = ALIGN_UP (current, align); + uintptr_t aligned = ALIGN_UP (current, align); size_t size; bool overflow = __builtin_mul_overflow (element_size, count, &size); - size_t new_current = aligned + size; + uintptr_t new_current = aligned + size; if (!overflow /* Multiplication did not overflow. */ && aligned >= current /* No overflow in align step. */ && new_current >= size /* No overflow in size computation. */ |