From b3069ee3a97d7c15ce391655b74fa166248c6394 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 11 Nov 2018 15:29:59 +0100 Subject: Simplify reader stack pushing code --- src/reader.h | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/reader.h b/src/reader.h index f19038f8..7d911cb4 100644 --- a/src/reader.h +++ b/src/reader.h @@ -159,16 +159,18 @@ push_byte(SerdReader* reader, SerdNode* node, const int c) } static inline SerdStatus -push_bytes(SerdReader* reader, SerdNode* ref, const uint8_t* bytes, unsigned len) +push_bytes(SerdReader* reader, + SerdNode* ref, + const uint8_t* bytes, + unsigned len) { - if (reader->stack.buf_size < reader->stack.size + len) { - return SERD_ERR_OVERFLOW; - } - - for (unsigned i = 0; i < len; ++i) { - push_byte(reader, ref, bytes[i]); + const bool has_space = reader->stack.buf_size >= reader->stack.size + len; + if (has_space) { + for (unsigned i = 0; i < len; ++i) { + push_byte(reader, ref, bytes[i]); + } } - return SERD_SUCCESS; + return has_space ? SERD_SUCCESS : SERD_ERR_OVERFLOW; } #endif // SERD_READER_H -- cgit v1.2.1