From 419d9d165a6ce2eacb563e7351b7d33a79919823 Mon Sep 17 00:00:00 2001 From: Jonas Fonseca Date: Wed, 21 Dec 2005 13:56:18 +0100 Subject: [PATCH] get_dom_stack_state_data(): Make static inline and handle zero object size --- src/document/dom/stack.h | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/document/dom/stack.h b/src/document/dom/stack.h index f02a2bad..92bbc69f 100644 --- a/src/document/dom/stack.h +++ b/src/document/dom/stack.h @@ -93,8 +93,18 @@ get_dom_stack_state(struct dom_stack *stack, int top_offset) #define get_dom_stack_parent(stack) get_dom_stack_state(stack, 1) #define get_dom_stack_top(stack) get_dom_stack_state(stack, 0) -#define get_dom_stack_state_data(context, state) \ - ((void *) &(context)->state_objects[(state)->depth * (context)->info->object_size]) +static inline void * +get_dom_stack_state_data(struct dom_stack_context *context, + struct dom_stack_state *state) +{ + size_t object_size = context->info->object_size; + + if (!object_size) return NULL; + + assertm(context->state_objects); + + return (void *) &context->state_objects[state->depth * object_size]; +} /* The state iterators do not include the bottom state */