From: cvs@pasky.ji.cz To: elinks-cvs@v.or.cz Subject: [ELinks] elinks (ECMASCRIPT) - jonas: Use states to cleanup. Reply-To: elinks-dev@linuxfromscratch.org Mail-Followup-To: elinks-dev@linuxfromscratch.org X-CVS: jonas@ELinks:elinks User-Agent: cvslog.pl/1.102 This is an automated notification of a change to the ELinks CVS tree. Author: jonas Module: elinks Tag: ECMASCRIPT Date: Wed Mar 3 03:33:00 2004 GMT ---- Log message: Use states to cleanup. ---- Files affected: elinks/src/document/dom: navigator.c (1.1.2.41 -> 1.1.2.42) http://cvsweb.elinks.or.cz/cvsweb.cgi/elinks/src/document/dom/navigator.c.diff?r1=1.1.2.41&r2=1.1.2.42&f=u navigator.h (1.1.2.27 -> 1.1.2.28) http://cvsweb.elinks.or.cz/cvsweb.cgi/elinks/src/document/dom/navigator.h.diff?r1=1.1.2.27&r2=1.1.2.28&f=u ---- Diffs: elinks/src/document/dom/navigator.c | 13 +++++-------- elinks/src/document/dom/navigator.h | 4 ++-- 2 files changed, 7 insertions(+), 10 deletions(-) Index: elinks/src/document/dom/navigator.c diff -u elinks/src/document/dom/navigator.c:1.1.2.41 elinks/src/document/dom/navigator.c:1.1.2.42 --- elinks/src/document/dom/navigator.c:1.1.2.41 Wed Mar 3 03:42:31 2004 +++ elinks/src/document/dom/navigator.c Wed Mar 3 04:32:55 2004 @@ -119,10 +119,9 @@ } static inline int -do_pop_dom_node(struct dom_navigator *navigator, struct dom_node *node) +do_pop_dom_node(struct dom_navigator *navigator, struct dom_navigator_state *parent) { struct dom_navigator_state *state; - struct dom_node *popped; assert(navigator); if (!dom_navigator_has_parents(navigator)) return 0; @@ -130,7 +129,7 @@ state = get_dom_navigator_top(navigator); if (state->callback) { /* Pass the node we are popping to and _not_ the state->node */ - state->callback(navigator, node, state->data); + state->callback(navigator, parent->node, state->data); } navigator->depth--; @@ -144,10 +143,9 @@ memset(&navigator->state_objects[offset], 0, navigator->object_size); } - popped = state->node; memset(state, 0, sizeof(struct dom_navigator_state)); - return popped == node; + return state == parent; } void @@ -156,15 +154,14 @@ assert(navigator); if (!dom_navigator_has_parents(navigator)) return; - do_pop_dom_node(navigator, get_dom_navigator_parent(navigator)->node); + do_pop_dom_node(navigator, get_dom_navigator_parent(navigator)); } void pop_dom_nodes(struct dom_navigator *navigator, enum dom_node_type type, unsigned char *string, uint16_t length) { - struct dom_navigator_state *state; - struct dom_node *parent; + struct dom_navigator_state *state, *parent; unsigned int pos; if (!dom_navigator_has_parents(navigator)) return; Index: elinks/src/document/dom/navigator.h diff -u elinks/src/document/dom/navigator.h:1.1.2.27 elinks/src/document/dom/navigator.h:1.1.2.28 --- elinks/src/document/dom/navigator.h:1.1.2.27 Wed Mar 3 03:42:31 2004 +++ elinks/src/document/dom/navigator.h Wed Mar 3 04:32:55 2004 @@ -90,7 +90,7 @@ if (((item) = &(nav)->states[(pos)])) /* Dive through the navigator states in search for the specified match. */ -static inline struct dom_node * +static inline struct dom_navigator_state * search_dom_navigator(struct dom_navigator *navigator, enum dom_node_type type, unsigned char *string, uint16_t length) { @@ -103,7 +103,7 @@ if (parent->type == type && parent->length == length && !strncasecmp(parent->string, string, length)) - return parent; + return state; } return NULL;