From 177d9019cbadc538c203b12020e01a984991b8ee Mon Sep 17 00:00:00 2001 From: Andreas Waidler Date: Fri, 24 Jun 2011 20:34:01 +0200 Subject: [PATCH] More assertions. --- src/stack.c | 16 +++++++++++++--- src/text.c | 7 ++++++- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/stack.c b/src/stack.c index a65d652..debac20 100644 --- a/src/stack.c +++ b/src/stack.c @@ -14,6 +14,7 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #include +#include #include "stack.h" #include "fail.h" #include "rss.h" @@ -26,24 +27,33 @@ void unknown_leave(const char* elem); struct Layer _stack[STACK_LAYERS] = { { unknown_enter, unknown_leave } }; unsigned int _top = 0; +/* FIXME init */ + const struct Layer* stack_top() { + assert(_top < STACK_LAYERS); + /* FIXME */ + /* assert(_stack[_top].enter) */ + /* assert(_stack[_top].leave) */ + return &_stack[_top]; } void stack_next() { + assert(_top < STACK_LAYERS - 1); ++_top; } void stack_prev() { + assert(_top > 0); --_top; } void stack_set(unsigned i, struct Layer l) { - if (i >= STACK_LAYERS) fail(ERR_STACK); + assert(i < STACK_LAYERS); _stack[i].enter = l.enter; _stack[i].leave = l.leave; @@ -53,7 +63,7 @@ void unknown_enter(const char* elem, const char** attr) { (void) attr; - if (strcmp("rss", elem) != 0) fail(ERR_TYPE); + assert(!strcmp("rss", elem)); rss_setup(); } @@ -62,5 +72,5 @@ void unknown_leave(const char* elem) { (void) elem; - fail(ERR_STACK); + assert(0); } diff --git a/src/text.c b/src/text.c index 41085b0..06438e2 100644 --- a/src/text.c +++ b/src/text.c @@ -14,6 +14,7 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #include +#include #include "config.h" #include "stack.h" #include "expat.h" @@ -34,10 +35,12 @@ void text_buffer(const char* str, size_t len) size_t free = buffer + TEXT_BUFFER_SIZE - cursor - 1; size_t n = len < free ? len : free; - /* Prevent overflow in memcpy(). */ + /* Already full? Prevent overflow in memcpy(). */ if (cursor == buffer + TEXT_BUFFER_SIZE) return; + assert(cursor + n < buffer + TEXT_BUFFER_SIZE); memcpy(cursor, str, n); + cursor += n; *cursor = 0; } @@ -45,6 +48,7 @@ void text_buffer(const char* str, size_t len) void text_enable() { expat_use_text_buffer = true; + cursor = buffer; *cursor = 0; } @@ -52,6 +56,7 @@ void text_enable() void text_disable() { expat_use_text_buffer = false; + cursor = buffer; *cursor = 0; } -- 2.11.4.GIT