From 63b92951880e54ab0c06069486f0092a1ac3d337 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Thu, 19 Dec 2019 14:28:39 -0500 Subject: Improve push_byte() performance --- src/reader.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/reader.h b/src/reader.h index cfda66c8..aacc2ec8 100644 --- a/src/reader.h +++ b/src/reader.h @@ -148,14 +148,14 @@ push_byte(SerdReader* reader, SerdNode* node, const int c) assert(c != EOF); SERD_STACK_ASSERT_TOP(reader, node); - char* const s = (char*)serd_stack_push(&reader->stack, 1); - if (!s) { + if (reader->stack.size + 1 > reader->stack.buf_size) { return SERD_ERR_OVERFLOW; } + ((uint8_t*)reader->stack.buf)[reader->stack.size - 1] = (uint8_t)c; + ++reader->stack.size; ++node->n_bytes; - *(s - 1) = (uint8_t)c; - *s = '\0'; + return SERD_SUCCESS; } -- cgit v1.2.1