diff options
author | David Robillard <d@drobilla.net> | 2016-03-16 16:21:20 -0400 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2021-03-07 15:32:23 -0500 |
commit | a29581d3ba664175c459e20e6c86be09707fde6e (patch) | |
tree | d11253ca88b09d7a768740b00332a4d780e3852d /src/stack.h | |
parent | 6e856d3e7a9c3162b9af350d5cec8a3f6bb94ee2 (diff) | |
download | serd-a29581d3ba664175c459e20e6c86be09707fde6e.tar.gz serd-a29581d3ba664175c459e20e6c86be09707fde6e.tar.bz2 serd-a29581d3ba664175c459e20e6c86be09707fde6e.zip |
Use char* for strings in public API
The constant casting just makes user code a mess, for no benefit.
Diffstat (limited to 'src/stack.h')
-rw-r--r-- | src/stack.h | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/src/stack.h b/src/stack.h index fef33390..bcf1434b 100644 --- a/src/stack.h +++ b/src/stack.h @@ -28,9 +28,9 @@ /** A dynamic stack in memory. */ typedef struct { - uint8_t* buf; ///< Stack memory - size_t buf_size; ///< Allocated size of buf (>= size) - size_t size; ///< Conceptual size of stack in buf + char* buf; ///< Stack memory + size_t buf_size; ///< Allocated size of buf (>= size) + size_t size; ///< Conceptual size of stack in buf } SerdStack; /** An offset to start the stack at. Note 0 is reserved for NULL. */ @@ -40,7 +40,7 @@ static inline SerdStack serd_stack_new(size_t size) { SerdStack stack; - stack.buf = (uint8_t*)calloc(size, 1); + stack.buf = (char*)calloc(size, 1); stack.buf_size = size; stack.size = SERD_STACK_BOTTOM; return stack; @@ -67,12 +67,10 @@ serd_stack_push(SerdStack* stack, size_t n_bytes) const size_t new_size = stack->size + n_bytes; if (stack->buf_size < new_size) { stack->buf_size += (stack->buf_size >> 1); // *= 1.5 - stack->buf = (uint8_t*)realloc(stack->buf, stack->buf_size); + stack->buf = (char*)realloc(stack->buf, stack->buf_size); } - - uint8_t* const ret = (stack->buf + stack->size); - - stack->size = new_size; + char* const ret = (stack->buf + stack->size); + stack->size = new_size; return ret; } @@ -96,8 +94,7 @@ serd_stack_push_aligned(SerdStack* stack, size_t n_bytes, size_t align) } // Set top of stack to pad count so we can properly pop later - assert(pad < UINT8_MAX); - stack->buf[stack->size - 1] = (uint8_t)pad; + stack->buf[stack->size - 1] = (char)pad; // Push requested space at aligned location return serd_stack_push(stack, n_bytes); @@ -110,7 +107,7 @@ serd_stack_pop_aligned(SerdStack* stack, size_t n_bytes) serd_stack_pop(stack, n_bytes); // Get amount of padding from top of stack - const uint8_t pad = stack->buf[stack->size - 1]; + const uint8_t pad = (uint8_t)stack->buf[stack->size - 1]; // Pop padding and pad count serd_stack_pop(stack, pad + 1u); |